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