日期:2014-05-20  浏览次数:20698 次

java反射简单问题
java反射一直没有弄明白的一个问题:
  
   例如,String  st
     st 与String.class 到底什么关系?
java?反射

------解决方案--------------------
楼主也是吧,我也刚从新手走过来,楼主的问题说明你细化思考,
String st;其实是你定义了一个String类型的对象,此时这个对象没有指向任何引用,为null,如果试图去调用st的任何方法,会抛出NullPointerException
而String.class,其实返回的是String类型的字节码文件对象的引用,楼主应该见过.java文件被编译后是.class文件,String.class其实就是String.java编译后的字节码在内存中以对象存在的形式,它是唯一的,任何调用String.class的地方都返回相同字节码对象的引用
------解决方案--------------------
引用:
楼主也是吧,我也刚从新手走过来,楼主的问题说明你细化思考,
String st;其实是你定义了一个String类型的对象,此时这个对象没有指向任何引用,为null,如果试图去调用st的任何方法,会抛出NullPointerException。
而String.class,其实返回的是String类型的字节码文件对象的引用,楼主应该见过.java文件被编译后是.class文件,String.class其实就是String.java编译后的字节码在内存中以对象存在的形式,它是唯一的,任何调用String.class的地方都返回相同字节码对象的引用

此为正解