gpt4 book ai didi

Java动态创建未指定的类

转载 作者:行者123 更新时间:2023-11-30 08:59:39 24 4
gpt4 key购买 nike

非常了解 Java 的人提出的快速问题。我的解释是这是不可能的,因为类必须在运行时之前显式声明,但我想要一个直接的答案。

我能以某种方式做到这一点吗(短代码):

Class foo extends Object; //There is a class named foo.

public Vector<Object> classVector = new Vector<Object>();

public static void main(String[] args){
undefinedClassType = foo; //in some way
classVector.add(new undefinedClassType); //Vector now has a Object that can be casted to foo.
}

只是想知道。感谢您提供的所有帮助和回复。

最佳答案

为此使用 Java 反射:https://docs.oracle.com/javase/tutorial/reflect/

您可以使用SDK工具在运行时编译一个类,然后将其加载到类加载器中,然后使用反射对其进行实例化。

  • 使用 JavaCompiler用于在运行时编译类。

  • 然后,使用(编译后的类文件需要在类路径中以便类加载器可以访问)将其加载到您的类加载器中

    Class theClass = Class.forName("YourClass");

  • 最后使用反射来实例化(这个例子是针对一个有默认构造函数的类)

    YourClass loadedClass = (YourClass)theClass.newInstance();

关于Java动态创建未指定的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137613/

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