net.java.dev.jaxb.array.StringArray如何工作?

时间:2013-08-12 08:41:18

标签: java jsp java-ee netbeans-7 netbeans-7.1

我知道列表的工作情况。当我使下面的代码工作正常,但我无法访问其值,我知道它的值是什么,但后面的输出显示哪个是错误的。

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

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

2 个答案:

答案 0 :(得分: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

答案 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]