这段代码问题出在哪里,为什么在运行的时候会出现空指针异常呢,有什么解决的办法吗?
public class Test2{
public static void main(String args[])
{
Stack item=new Stack();
item.push("A");
item.push("B");
item.push("C");
Stack<String> s2 = Stack.copy(item);
while (!s2.isEmpty()) {
System.out.println(s2.pop());
}
}
public static Stack copy(Stack s) {
Stack temp=new Stack();
for(String i:s)
temp.push(i);
Stack temp2=new Stack();
for(String j:temp)
temp2.push(j);
return temp2;
}
}
Stack s2 = Stack.copy(item);
Stack有copy()方法吗?
Stack s2 = Stack.copy(item);
从代码来看,似乎应该是要调用public static Stack copy(Stack s)方法,那么此处应该是:Stack s2 = copy(item);
另外,copy方法中参数Stack s 未制定元素类型,语句for(String i:s)会报错,应该改成:for(Object i:s)
楼上正解。建议楼主把异常信息也贴出来,可以看看是第几行代码出错。
Stack s2 = Stack.copy(item);
while (!s2.isEmpty()) {
System.out.println(s2.pop());
}
!s2.isEmpty()这个改成null!=s2试试