gpt4 book ai didi

java - 如何正确加载实现参数化接口(interface)的类?

转载 作者:行者123 更新时间:2023-11-30 09:32:56 24 4
gpt4 key购买 nike

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 的解决方案(这可能意味着对父类(super class)型进行运行时检查,例如 Class.asSubclass 的更强大版本)。

最佳答案

 public Class<?> loadClass(String name) throws ClassNotFoundException

当它返回时 Class<?>通用类,your type information is lost here .因此,您必须将类型转换为所需的类型。

关于java - 如何正确加载实现参数化接口(interface)的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12421920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com