gpt4 book ai didi

Java:如何加载已经在类路径上的类(及其内部类)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:58 26 4
gpt4 key购买 nike

如何加载已经在类路径上的类、实例化它,以及实例化其中定义的任何内部类?

如:

public class TestClass {


public class InnerClass { }

}

最佳答案

内部类不能存在于父类之外。您需要先构造父类。没有反射(reflection),这看起来像:

InnerClass innerClass = new TestClass().new InnerClass();

在反射中,需要在构造内部类时传入父类。

Object testClass = Class.forName("com.example.TestClass").newInstance();
for (Class<?> cls : testClass.getClass().getDeclaredClasses()) {
// You would like to exclude static nested classes
// since they require another approach.
if (!Modifier.isStatic(cls.getModifiers())) {
Object innerClass = cls
.getDeclaredConstructor(new Class[] { testClass.getClass() })
.newInstance(new Object[] { testClass });
}
}

关于Java:如何加载已经在类路径上的类(及其内部类)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868337/

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