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.