在张老师java增强视频中ReflectTest.java有段这样的代码,里面有个用String类型强转的。- //new String(new StringBuffer("abc"));
- Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
- String str2 = (String)constructor1.newInstance(/*"abc"*/new StringBuffer("abc"));
- System.out.println(str2.charAt(2));
复制代码
自己领悟的理由:程序分为编译和运行时期,编译时期:只检查语法,只把“=”右边的代码生成二进制存起来。运行时期:只要运行时期时,才真正运行“=”右边的。
constructor只知道是个构造方法,不知道是哪个类的构造方法!所以要加上String来类型强转的。
自己去看Class类下的newInstance( )方法,会发现它的返回值类型就是object的。 |