woodworm
发贴: 80
积分: 1
|
于 2003-06-20 08:41
class Test{ static public void main(String[] args) { System.out.println(Test.class); //这句话的.class怎么来的?
} }
编译运行都没问题。谁能说一下原理? ====================================== xxx.class 表示的是一个Class(类)的实例,当然是继承子Object而Object有一个toString()方法,也就是说所有的对象都可以用System.out.println(**),实际上就是System.out.println(***.class.toString)
记住xxx.class是一个类实例就好了
====================================== 实际上这里没有什么原理,因为这是Java语言规范就是这样的,将.class看作对应的类的Class对象静态的显式引用,事实上类装载后该类就由虚拟机自动产生了,并作为一个静态对象存在的. ====================================== 这个是java中对于rtti的支持
obj.getClass
和 Object.class是一样的。 ====================================== 反正是个关键字用法 ejb中经常用到 eg: LocalProductHome home=(LocalProductHome)PortalbeRemoteObject.narrow(yourref,LocalProductHome.class); 不知是什么时候加进这个用法的,俺也没看见过正式声明过
出处:http://expert.csdn.net/Expert/topic/1935/1935478.xml?temp=.6278192
|