根据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()); } }