Topic: 【转贴】这是java未公开的写法么? |
Print this page |
1.【转贴】这是java未公开的写法么? | Copy to clipboard |
Posted by: woodworm Posted on: 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 |
2.Re:【转贴】这是java未公开的写法么? [Re: woodworm] | Copy to clipboard |
Posted by: zhongyijie Posted on: 2003-07-24 11:03 这不是未公开的,而是已经公开的用法,是Java反射机制的一部分。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |