黑马程序员技术交流社区

标题: 关于反射新建对象不存在的问题。 [打印本页]

作者: 刘源    时间: 2012-8-4 11:26
标题: 关于反射新建对象不存在的问题。
本帖最后由 刘源 于 2012-8-4 17:27 编辑

部分代码如下:

String str2 = (String)String.class.newInstance();
  System.out.println(str2==null);
  System.out.println(str2);
  System.out.println(str2.equals(null));
打印结果是:
false
     (这个就是什么都没有,不是我多按了个回车)
fasle


这个str2到底是什么东西啊,打印结果什么都没有,但内容也不是null.
如果(str2==null)比较的是地址的话,地址也是存在的。那为什么System.out.println(str2);这个什么都打印不出来呢
问题已经解决”。


作者: 樊占江    时间: 2012-8-4 11:29
你是不是没有给str2赋值啊?
作者: 胡文凡    时间: 2012-8-4 12:07
本帖最后由 胡文凡 于 2012-8-4 12:08 编辑

String str2 = (String)String.class.newInstance();
调用的不带参数的构造方法
而String不带参数的构造方法为:
String()
          初始化一个新创建的 String 对象,使其表示一个空字符序列。
所以str2为一个空字符序列,所以打印出来的就是空白的了
进一步验证:
    System.out.println(str2.equals(""));//true




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