2014-12-03 50 views
0

我有這樣的方法:的Java Object.class和x.getClass

public Object load(Object type) { 
... 
} 

注意,參數是一個對象類型。

我有幾個類正在使用loadConfiguration方法。在該方法中,我需要知道該類,因此需要MyObject.class的值。 嗯,因爲我有一個對象,這是不可能的,type.getClass()也拋出一個異常,因爲只是給了我java.lang.Class中而不是真實的。 一種可能性是使用instanceof功能,但我想盡可能保持一般。

對此有何想法?我也看過to this topic

謝謝!

+0

待辦事項你知道哪些類將要調用'locad(Object obj)'?..如果是的話可以嘗試'instanceOf' .. – Babel 2014-12-03 09:28:40

+3

聽起來像你想要的Java泛型我的朋友。一個問題。 *爲什麼*你需要知道對象的類型?你在調用什麼對象特定的功能? – christopher 2014-12-03 09:29:16

+0

@looser Nope - 多數民衆贊成在 – thardes2 2014-12-03 09:29:18

回答

0

我不確定你的例子到底發生了什麼。我相信在你的例子中參數type是一個Class對象,所以你可以投它。然後

public Object load(Object type) { 
Class<?> clazz = (Class<?>)type; 
... 
} 

調用代碼看起來像

blah.load(MyObject.class); 

事實上,如果你需要知道的類中的方法被調用該命令的類型,你可以簡單地調用

Class<?> clazz = this.getClass() 
相關問題