java中的getType()和getClass()有什么区别?
我曾经在c#中使用,我看到它也存在于Java中。getType()
我应该何时使用?getType()
getClass()
我曾经在c#中使用,我看到它也存在于Java中。getType()
我应该何时使用?getType()
getClass()
根据 getClass 和 getType 的文档:
getClass
返回“表示此对象的运行时类的 Class 对象”。
getType
返回“一个 Class 对象,用于标识此对象所表示的字段的声明类型”
主要区别在于,它将给你一个运行时类型的类对象,并给你一个引用字段的声明类型的类对象。someObject.getClass()
someObject
someField.getType()
someField
(调用将返回,因为它引用的是对象本身,而不是它所引用的字段)。someField.getClass()
Field.class
Field
此外,虽然可用于每个对象,但仅适用于作为反射 API 一部分的对象。getClass
getType
Field
getClass
是类对象的一种方法,它将继承到所有类,并且在任何情况下都同样工作。
就像为不同目的在不同类上编写的其他方法一样。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.
正如文档所说
,对于将在Java上编写的所有类都是通用的。
getType()在不同情况下返回不同的东西
例如
在字符方法中获取类型 Returns a value indicating a character's general category.
在 java.awt.Window 方法 getType 中返回 Enum Window.Type