代码示例:
public class Foo
{
public class Bar
{
public void printMesg(String body)
{
System.out.println(body);
}
}
public static void main(String[] args)
{
// Creating new instance of 'Bar' using Class.forname - how?
}
}
是否可以创建 Bar 类的新实例并给出其名称?我尝试使用:
Class c = Class.forName("Foo$Bar")
它找到了该类,但是当我使用 c.newInstance() 时,它会抛出 InstantiationException。
你需要跳过一些障碍才能做到这一点。首先,您需要使用类.getConstructor()找到Constructor
您要调用的对象:
返回一个构造函数对象
反映特定公众
所表示的类的构造函数
通过这个 Class 对象。这
parameterTypes 参数是一个数组
标识的类对象
构造函数的形参类型,
按宣布的顺序。如果这个类
对象代表一个内部类
在非静态上下文中声明,
形式参数类型包括
显式封闭实例作为
第一个参数。
然后你使用构造函数.newInstance():
如果构造函数声明类
是非静态的内部类
上下文,第一个参数
构造函数需要是封闭的
实例
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)