我知道列表的工作情况。当我使下面的代码工作正常,但我无法访问其值,我知道它的值是什么,但后面的输出显示哪个是错误的。
List<StringArray> searchresponse = searchContent(data, pasta, chan, Type, arrS, arrk);
System.out.print(searchresponse);
此输出=
[net.java.dev.jaxb.array.StringArray@787582d3]不是 正确。如何显示响应该函数的项目?
答案 0 :(得分:0)
System.out.print(/*Object*/ o)
相当于System.out.print(/*Object*/ o.toString())
在您的情况下,o
为searchresponse
[net.java.dev.jaxb.array.StringArray@787582d3]
这是默认的toString()行为。
public String More ...toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
要验证,请尝试以下操作:
String s = searchresponse.toString();
System.out.println(s);// prints net.java.dev.jaxb.array.StringArray@HEXCODE
答案 1 :(得分:0)
每当我们尝试打印对象时,编译器将在Object类中找到toString()方法并生成对象的字符串表示。您必须重写此方法以获取实例变量的实际值。
class A
{
String name;
int id;
A(String name, int id)
{
this.name=name;
this.id=id;
}
public String toString()
{
return (name+" "+id);
}
public static void main (String ...a)
{
List<A> list = new ArrayList<A>();
A o = new A("a",1);
A o1= new A ("b",2);
list.add(o);
list.add(o1);
System.out.println(list);
}
}
输出
[a 1, b 2]