0

我知道列表的工作。当我使以下代码工作正常但我无法访问它的值并且我知道其中的值是什么但以下输出显示哪个是错误的时。

 List<StringArray> searchresponse = searchContent(data, pasta, chan, Type, arrS, arrk);
System.out.print(searchresponse);

此输出 =
[net.java.dev.jaxb.array.StringArray@787582d3] 不正确。如何显示响应该函数而出现的项目?

4

2 回答 2

0

System.out.print(/*Object*/ o)相当于System.out.print(/*Object*/ o.toString())

你的情况osearchresponse

[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
于 2013-08-12T08:43:54.773 回答
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]
于 2013-08-12T09:12:22.307 回答