其实这种问题,完全是JVM在搞怪。
你就这么理解吧。
Constructor 你就认为这就是一个类型对象,作用就是获取构造方法的一个对象,而他必须通过反射去获取。因为 他就在java.lang.reflect包里面。。。它仅仅代表一个对象,不是说通过一个反射就能改变这个对象 类型。
所以,下面出现了 通过这个对象 去newInstance的时候,JVM不认为,你用了反射它就是什么类型。
还是保持JVM默认类型。因为它是规定的,所以要强转。
就像:
Class clazz = Person.class;
Person p = (Person) clazz.newInstance();
你明明通过反射拿到类字节码,而下面JVM却不承认一样。
|