黑马程序员技术交流社区

标题: 终于理解了为什么要用String类型强转的。。。 [打印本页]

作者: 坚持525    时间: 2014-10-16 18:52
标题: 终于理解了为什么要用String类型强转的。。。
在张老师java增强视频中ReflectTest.java有段这样的代码,里面有个用String类型强转的。
  1.                 //new String(new StringBuffer("abc"));
  2.                 Constructor constructor1 = String.class.getConstructor(StringBuffer.class);
  3.                 String str2 = (String)constructor1.newInstance(/*"abc"*/new StringBuffer("abc"));
  4.                 System.out.println(str2.charAt(2));
复制代码

自己领悟的理由:程序分为编译和运行时期,编译时期:只检查语法,只把“=”右边的代码生成二进制存起来。运行时期:只要运行时期时,才真正运行“=”右边的。
constructor只知道是个构造方法,不知道是哪个类的构造方法!所以要加上String来类型强转的。
自己去看Class类下的newInstance( )方法,会发现它的返回值类型就是object的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2