Nar*_*hai 17
使用反射创建实例:
Object obj = clazz.newInstance();
Run Code Online (Sandbox Code Playgroud)
这将使用默认的no-arg构造函数来创建实例.
Constructor<?> constructor = clazz.getConstructor(String.class);
Object object = constructor.newInstance(new Object[] { strArgument });
Run Code Online (Sandbox Code Playgroud)
如果你有一些其他构造函数接受参数,则创建实例.
newInstance()
已弃用。此方法传播由空构造函数引发的任何异常,包括已检查的异常。使用此方法可以有效地绕过原本由编译器执行的编译时异常检查。Constructor.newInstance 方法通过将构造函数抛出的任何异常包装在(已检查的)java.lang.reflect.InitationTargetException 中来避免此问题。
已弃用的调用:
clazz.newInstance()
Run Code Online (Sandbox Code Playgroud)
可以替换为:
clazz.getDeclaredConstructor().newInstance()
Run Code Online (Sandbox Code Playgroud)
例子:
void MyMethod(Class type) throws InstantiationException, IllegalAccessException {
type.getDeclaredConstructor().newInstance();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31395 次 |
最近记录: |