我曾经在c#中使用getType()
,我也看到它也存在于Java中。
我应该何时使用getType()
和何时使用getClass()
?
答案 0 :(得分:9)
getClass
返回"表示此对象的运行时类的Class对象。"
getType
返回"一个Class对象,用于标识此对象所表示的字段的声明类型"
主要区别在于someObject.getClass()
将为您提供运行时类型someObject
和someField.getType()
的类对象,它将为您提供一个类对象someField
引用的字段的声明类型。
(致电someField.getClass()
将返回Field.class
,因为它指的是Field
对象本身,而不是它所指的字段。)
此外,虽然getClass
可用于每个对象,但getType
仅适用于作为反射API一部分的Field
个对象。
答案 1 :(得分:0)
getClass
是Class 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.