getclass()vs .class

时间:2012-11-13 19:13:24

标签: java

  

可能重复:
  What’s the difference between calling MyClass.class and MyClass.getClass()

想拥有一个Class<T>对象,这两种方法有什么区别?

Test ob = new Test();

ob.getclass();

Test.class

2 个答案:

答案 0 :(得分:4)

根据Class javadoc

首先从Object获取 Class 对象。

第二种方法使用class文字为命名类型(或void)获取 Class 对象。

答案 1 :(得分:4)

getClass()方法在java.lang.Object中定义,因此可以在任何对象引用上调用。

  

它获取与引用所指向的对象的运行时类型相关联的Class对象。   。

     

getClass()方法根本不类似于.class。 Closer是Class.forName(String),它获取由String命名的类的Class对象。

在可以使用其中任何一种的情况下,使用.class,因为它更有效。