Class<List>
,Class<List<?>>
或者Class<List<Anything>
实际上是指相同的Class
。
但是,如果我有
class MyClass implements List<SomeClass> {
// ...
}
然后我可以写
Class<? extends List<SomeClass>> myClass = MyClass.class;
这将允许我写
List<SomeClass> myInstance = myClass.newInstance();
诀窍是我想通过反射加载这个类,ClassLoader.loadClass
并且仍然myClass
使用相同的类型声明。这样做的正确/最简单的方法是什么?
我想要一个不会引发编译警告且不需要的解决方案@SuppressWarnings
(这可能意味着对超级类型进行运行时检查,例如更强大的Class.asSubclass
.