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

菜鸟的.class问题
java的api文档中的例子
String.class.getName()
returns   "java.lang.String "
class不是String中的成员,为什么String可以直接调用?
我是java初学者,谢谢!

------解决方案--------------------
这个是继承自Object的
任何一个类,都有一个 class对象,来表示自身的标记
------解决方案--------------------
String.class什么时候继承自Object了?

class是java关键字,就像你用this、instanceof一样,是语法约定,String.class表示String类的对象,等价于 " ".getClass();

getClass()方法才是从Object继承下来的
------解决方案--------------------
class是java关键字,就像你用this、instanceof一样,是语法约定,String.class表示String类的对象,等价于 " ".getClass();
============================================
表达得有点问题吧。

并不是等价于.getClass();
String.class.getName()
等价于
Class c = String.class;
String className = c.getName();

.getClass()的用法则在

Object o1 = "This is a string ";
Class c = o1.getClass();
String className = c.getName();

换句话说,未实例化之前,类可以通过 .class得到 class信息
对于一个对象(类的实例化),可以通过.getClass()得到 class信息
------解决方案--------------------
class类是非常特殊的类,主要是用在反射上,是高级技术。
Think in java 有这方面的介绍,但不是很多页,作者可能认为这块比较难,只做概要性的介绍,不过足够你解决你刚才所提出的问题了。
------解决方案--------------------
java.lang包是自动加载的!