在今天使用反射的newInstance()时候发现,jdk9版本将class.newInstance()过时,
Class<?> stack1 = Class.forName("Stack");
stack1.newInstance();
那我们应该用什么呢?jdk9推荐我们使用构造方法的方式来反射出对象。
Class<?> stack1 = Class.forName("Stack");
Stack stack2 = (Stack) stack1.getConstructor(int.class).newInstance(5);
这里的获取构造函数参数里面放入这个类的构造函数的参数,newInstance里面的参数放的就是给予构造函数的值。
为什么jdk9扔掉了newInstance,因为对于构造函数,我们只能使用空构造函数。