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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 阿布Yocan 于 2014-6-9 22:31 编辑

  在学习得到字节码对应的实例对象的时候,张老师对代码进行了抛出异常,代码没问题,我试着去try catch一下Class cls3 = Class.forName("java.lang.String");系统报错,要我把变量cls3进行私有
第一个问题:这里为什么我要用cls1和cls2跟cls3做比较的时候,代码会报错?
  私优化cls3之后

第二个问题:为什么把cls3是私有化之后,打印比较的结果为false?
  自我感觉我的问题有点幼稚,但是确实不大懂,求解释,谢谢咯!
F:\1.jpg





评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
Class cls3是局部变量,在下面的输出语句是访问不到,你把声明放到try语句外就行了

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
Boiled_Water 发表于 2014-6-9 21:07
Class cls3是局部变量,在下面的输出语句是访问不到,你把声明放到try语句外就行了 ...

恩,我也发现了,刚把cls3声明在外面,成功了,谢谢你,小知识点用的不大溜,还需多用
                Class cls1 = str1.getClass();
                Class cls2 = String.class;
                Class cls3 = null;
                try {
                         cls3 = Class.forName("java.lang.String");
                } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                }
                System.out.println(cls1 == cls2);
                System.out.println(cls1 == cls3);
                System.out.println(cls2 == cls3);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马