0
我知道這個網站充滿了類似的問題,通過快速閱讀給定的問題,想到的第一個答案是「不,你不能「,但我仍然有這樣的印象:我所要求的並不是不可能的。在運行時確定一個通用類的類型
我已經在類中創建了一個泛型方法,我想檢查傳遞給該方法的對象的類型。我知道它不能直接完成,因此我將一個對象Class<T>
obj傳遞給該方法。但是我找不到在方法體中正確執行類型檢查的方法。
public <T> void readData(T obj1, Class<T> obj2){
}
假設T
總是以下三種類型:ClassA
,ClassB
或ClassC
。 if-else-if塊應該如何?
我猜w如果(obj1 instanceof ClassA){...} if(obj1 instanceof ClassB){...} .... – 2013-02-28 14:20:50
您可以隨時執行obj1.getClass()。getSimpleName()。equals()爲obj2),從而知道他們的名字是否相等,否則我不明白爲什麼發送*兩個*參數。 – Infested 2013-02-28 14:25:38
@LuiggiMendoza是對的。在這種情況下,你甚至不需要obj2。 – Pace 2013-02-28 14:26:01