所以我试图打印我的ArrayList,AList,它是一个类型为Question的ArrayList(我自己创建的一个类),我使用的是toString方法但是它并没有。似乎工作。它仍在打印数组地址。
for(int i = 0; i < AList.size(); i++)
{
System.out.println(AList.get(i).toString());
}
get(i)获取ArrayList中的Question对象。 我已经尝试过了:
System.out.println(AList.toString());
也是。它似乎永远不会起作用。 不确定我做错了什么。 不确定这是否太模糊。我对Java很新。
非常感谢!!
此外,似乎我的编译器告诉我,我无法将参数传递给toString方法。 :(
答案 0 :(得分:0)
1. AList的大小是否为零?
2. toString()
如果在override
中toString()
Object
List
,则会打印出类名称。
答案 1 :(得分:0)
默认情况下,调用toString函数时java中的所有对象都返回十六进制值,请阅读http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()
如果你想从toString获得一些有意义的值,你必须像下面的
一样覆盖它Class Question {
String text;
...
@Override
public String toString() {
return this.text;
}
}
答案 2 :(得分:0)
您可以像下面这样写。
首先,您需要检查AList.size()。
if(AList.size() == 0){
System.out.println("AList.size() == 0");
}else{
for(int i = 0; i < AList.size(); i++){
System.out.println(AList.get(i));
}
}
您可以覆盖问题对象中的toString()方法。
public String toString() {
return "Question: " + questionname+ ", and Question Answer" + questionanswer;
}
希望它会对你有所帮助。
答案 3 :(得分:0)
你应该使用泛型:
ArrayList<Question> Alist = new ArrayList<>();
现在当你调用Alist.get(i)时,它会返回问题对象并覆盖用户KishuDroid告诉的下面的方法
public String toString()
尝试打印任何对象时会调用此方法。因此,在此方法中,您应该在调用
时返回要打印的字符串System.out.println(Alist.get(i));
Alist.toString()将打印Alist对象的地址。