这个问题在这里已经有答案了:
如何在java中使用tostring方法(13个答案)
如何打印java对象而不获取“sometype@2f92e0f4”? (10个答案)
18天前关门了。
我必须在堆栈上创建一个方法。由于某些原因,当我尝试从main方法执行时,它总是显示如下内容 ArrayStack@6acbcfc0
甚至以为我从答题纸上取了答案。怎么了?这是我为方法和主类编写的代码。
叠加方法:
public static void splitStack(ArrayStack<Integer> st1,ArrayStack<Integer> st2)
{
ArrayStack<Integer> st11 = new ArrayStack<Integer>();
ArrayStack<Integer> st2rev = new ArrayStack<Integer>();
while(!st1.isEmpty())
{
st11.push(st1.pop());
if(!st1.isEmpty())
st2rev.push(st1.pop());
}
while(!st11.isEmpty())
st1.push(st11.pop());
while(!st2rev.isEmpty())
st2.push(st2rev.pop());
}
主要方法:
public static void main(String[] args) {
ArrayStack<Integer> s1 = new ArrayStack<>();
ArrayStack<Integer> s2 = new ArrayStack<>();
s1.push(0);
s1.push(1);
s1.push(3);
s1.push(4);
s1.splitStack(s1,s2);
System.out.println(s2);
}
输出:
ArrayStack@6acbcfc0
Process finished with exit code 0
2条答案
按热度按时间nx7onnlm1#
尝试在main方法中的system.out.println()语句中使用s2.tostring()。
like-system.out.println(s2.tostring());
eit6fx6z2#
将对象传递给
System.out.println()
,它试图弄清楚如何处理它,即它要传递给方法的对象类型。如果它不能理解其他任何东西,它会使用对象的toString()
方法(以便它可以将字符串传递给println()
),并且您显示的输出看起来像toString()
对于任意对象。如果你超控toString()
在你班上,那什么时候println()
调用它,它将执行您的代码而不是默认代码。