2012-05-07 57 views

回答

30

对于给定的实例,它返回的结果与Object.getClass()一样,但是当你静态地知道你想要的类(即在编译时)时可以使用它。

从的Javadoc:

返回运行此对象的类。

总之,它给你一个对象,它代表(原始)对象的。当您想要以编程方式发现方法和字段以调用/访问它们时,可以使用reflection等。

例如:

 Method m[] = String.class.getDeclaredMethods(); 
     for (int i = 0; i < m.length; i++) 
     { 
      System.out.println(m[i].toString()); 
     } 

的Javadoc也指你的Java Language Specification - Class Literals(这可能是一个有点沉重阅读)。

11

它返回表示指定类名称的Class对象。如果您需要获取Class对象,则使用此方法。

这大致对应于.getClass(),它返回与对象实例对应的Class对象。当您想使用Class对象并且没有对象实例时,可以使用someclassname.class。

+1

这是否意味着它返回类实例? – Rajeshwar

+0

@Rajeshwar no:例如'new Object()'返回Object的新实例,但Object.class是类Class的实例。他们是不同的东西。 – trutheality

+0

@trutheality请你详细说明.. – Rajeshwar

1

与.getClass()方法相同,但只能用于命名空类。 如果对象的类型可用,.class语法允许获得一个类,但是没有实例。 此外,获取原始类型的类的最简单方法。

3

.class是一个类文字...就像5是一个int文字,就像5.0是一个双重文字(令人惊讶的是,在java.lang包中有一个名为'Class'的类)。

因此,您可以打印类文字(就像您可以打印任何对象一样...您将得到toString()方法在Class类中返回的内容)。你可以有一个类变量。

PS:有很多功能可以使用