JAVA9之后废弃newInstance()方法
根据JAVA11的API 我们可以看见反射中的newInstance()方法不推荐使用了,用
clazz.getDeclaredConstructor().newInstance()
代替
例如
package reflect;
import java.lang.reflect.InvocationTargetException;
/**
* 获取class对象的几种方法
* 对象.get.class
* 类 class
* Class.forName(全限定类名)
*
*/
public class Demo {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
String string="abc";
Class<?> class1=string.getClass();
class1=String.class;
try {
class1=Class.forName("java.lang.String");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println((String)class1.getDeclaredConstructor().newInstance());
}
}