2013-02-05 117 views
0

是否有可能从他的参考ID获取对象?从参考ID获取对象Id

我得到的字符串的包含像的对象的参考ID的列表:

[email protected]

如何获得从物体这个参考ID?

它只是一个字符串,它不是强制转换为对象本身

+0

您在该列表中收到的内容可能是由于某些错误,您应该找到这些信息的来源。 – partlov

+2

它可能是'toString'方法的输出。答案是否定的。 –

+0

不,它不是一个toString()方法的输出,它是一个rich:pickList valueChangeListener event.getNewValue()的返回,好像它只返回字符串列表 –

回答

6

你看到什么叫做默认对象的toString。它是它所属类的FQCN(完全限定类名)和对象的hashCode的合并。

从的toString的JavaDoc引用:

Object类的toString方法返回由 其中物体是一个实例,所述-SIGN 字符`的类的名称的字符串@ ',以及对象代码的哈希 的无符号十六进制表示。换句话说,该方法返回一个字符串等于 ,它的值:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

总之,您可以使用此参考ID得不到的对象。

我们可以覆盖toString以提供更多的人类可读输出。看看下面的两个课程,有没有toString。尝试执行主方法并比较两个打印语句的输出。

class Person { 
    private String name; 

    @Override 
    public String toString() { 
     return "Person [name=" + this.name + "]"; 
    } 
} 

class Address { 
    private String town; 
} 

public class Test { 
    public static void main(String... args) { 
     Person person = new Person(); 
     Address address = new Address(); 

     System.out.println("Person is : " + person); 
     System.out.println("Address is : " + address); 
    } 
} 

但是,如果你真的在寻找一种方式来坚持的对象和在后面的阶段复活他们,你应该Serialization阅读起来。

+1

Add to class Gamma:'@Override public String toString(){return somthing; }'。 –

+0

非常感谢你 –

+0

+1为例...实际上+1无论如何:D –