Java如何从字符串实例化一个类

我有一串

String className = "DummyClass"

现在我想创建一个类的对象,其中的类名是 这是一样的东西

Object className = new className() // I know it's not possible.

我想知道怎么做…

回答:

“使用java.lang.reflect”将回答您的所有问题。首先Class使用来获取对象Class.forName(),然后:

如果要实例化使用检索的类,forName()则必须首先要求它提供一个java.lang.reflect.Constructor代表我想要的构造函数的对象,然后要求该Constructor对象创建一个新对象。该方法getConstructor(Class[]

parameterTypes)Class将检索Constructor;

然后,我可以Constructor通过调用其方法来使用它newInstance(Object[] parameters)

Class myClass = Class.forName("MyClass");

Class[] types = {Double.TYPE, this.getClass()};

Constructor constructor = myClass.getConstructor(types);

Object[] parameters = {new Double(0), this};

Object instanceOfMyClass = constructor.newInstance(parameters);

有一种newInstance()方法Class似乎可以满足您的要求。 。它将静默地将检查的异常转换为未检查的异常。

请注意,此方法传播由nullary构造函数引发的所有异常,包括已检查的异常。这种方法的使用有效地绕过了编译时异常检查,否则该检查将由编译器执行。该Constructor.newInstance方法通过将构造函数抛出的任何异常包装在(选中)中来避免此问题InvocationTargetException

以上是 Java如何从字符串实例化一个类 的全部内容, 来源链接: utcz.com/qa/415861.html

回到顶部