gpt4 book ai didi

java - 如何使用动态创建的类作为泛型?

转载 作者:行者123 更新时间:2023-11-30 03:10:09 25 4
gpt4 key购买 nike

我的问题是我确实有一个在运行时创建、编译和初始化的类。我这样做是将文件写为 TestClass,即文件 f,然后编译:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
compiler.run(null,null,null,f.getPath());

之后,我根据这个示例加载我的类并使用我的方法等; http://viralpatel.net/blogs/java-dynamic-class-loading-java-reflection-api/

现在我的问题是我需要这样做:

MyTask<T> m = new MyTask<T>(0,0,0);

T 应该是我动态创建的类,而不是 Integer.class 等。但是我还找不到方法。如果您检查我上面给出的链接中的示例,您将看到我可以以对象形式拥有我的类的实例,并且我可以为我的动态类提供一个类实例。然而,无论我尝试什么,我都找不到解决方案。

它一直说 Class myClass 不能用作类型。那么我如何使用这个动态创建的类作为类型。非常感谢。

最佳答案

没有有用的方法可以在源代码中表达编译时不存在的类型。与使用Object作为类型参数相比,它不会给你带来任何好处,因为Java泛型提供编译时类型检查,而不是运行时类型检查。

通过创建动态类将实现的接口(interface),并使用接口(interface)类型作为类型参数,可能可以满足您的目的。

关于java - 如何使用动态创建的类作为泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33764463/

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