给定一个 Object o
和一个 String className = "org.foo.Foo"
,我想检查是否 o
是 List<className>
的实例
我试过这个但不会编译:
Class<?> cls = Class.forName(className);
if (o instanceof List<cls>){ // this gives error: cls cannot be resolved to a type
doSomething();
}
请注意我的输入是 Object o
和 String className
(请注意类型)。
最佳答案
是因为Type Erasure .声明
if (o instanceof List<cls>) {
doSomething();
}
将在运行时执行,届时列表的泛型类型将被删除。因此,没有必要检查 instanceof
通用类型。
关于java - 检查一个对象是否是给定类名列表的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25003711/