A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在张老师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的。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马