java中的getType()和getClass()有什么区别?

时间:2014-11-15 18:01:12

标签: java class types

我曾经在c#中使用getType(),我也看到它也存在于Java中。

我应该何时使用getType()和何时使用getClass()

2 个答案:

答案 0 :(得分:9)

根据getClassgetType的文档:

getClass返回"表示此对象的运行时类的Class对象。"

getType返回"一个Class对象,用于标识此对象所表示的字段的声明类型"

主要区别在于someObject.getClass()将为您提供运行时类型someObjectsomeField.getType()的类对象,它将为您提供一个类对象someField引用的字段的声明类型。

(致电someField.getClass()将返回Field.class,因为它指的是Field对象本身,而不是它所指的字段。)

此外,虽然getClass可用于每个对象,但getType仅适用于作为反射API一部分的Field个对象。

答案 1 :(得分:0)

getClassClass Object 的一种方法,它将被继承到所有类,并且在每种情况下都会起作用。
 getType就像为不同目的在不同类上编写的其他方法一样。

getClass()

Returns the runtime class of this Object. The returned Class object is the object that is locked by
static synchronized methods of the represented class.

正如documentation 所说 它对于将在Java上编写的所有类都是通用的

getType()在不同情况下返回不同的内容

例如

Character方法getType Returns a value indicating a character's general category.

java.awt.Window方法getType中返回Enum Window.Type