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