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

Ela*_*nda 6 java types class

我以前getType()在c#中使用,我也看到它也存在于Java中.

当我应该使用getType()以及何时getClass()

Dan*_*bbs 10

根据getClassgetType的文档:

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

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

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

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

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