2013-02-05 149 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 –