Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中getType()和getClass()之间的区别是什么?_Java_Class_Types - Fatal编程技术网

java中getType()和getClass()之间的区别是什么?

java中getType()和getClass()之间的区别是什么?,java,class,types,Java,Class,Types,我曾经在c#中使用过getType(),我看到Java中也存在这种情况 我应该在什么时候使用getType()以及什么时候使用getClass() 根据和的文档: getClass返回“表示此对象的运行时类的类对象。” getType返回“一个类对象,该类对象标识此对象表示的字段的声明类型” 主要区别在于someObject.getClass()将为您提供someObject的运行时类型的class对象,而someField.getType()将为您提供someField引用的声明类型的clas

我曾经在c#中使用过
getType()
,我看到Java中也存在这种情况


我应该在什么时候使用
getType()
以及什么时候使用
getClass()

根据和的文档:

getClass
返回“表示此对象的运行时类的类对象。”

getType
返回“一个类对象,该类对象标识此对象表示的字段的声明类型”

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

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


此外,虽然
getClass
可用于每个对象,但
getType
仅可用于反射API中的
字段
对象。

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()在不同的情况下返回不同的内容

例如

在方法
中,返回一个值,该值指示字符的常规类别。


在方法return中,向我们展示java的
getType()方法的javadocs。哪个getType()方法?您在文档中看到这样一种方法的地方是什么:
Field.class
Field之间的区别是什么。getClass()
字段。class
字段
Field.getClass()
不可能,因为您只能在实例上调用
getClass
someField.class
someField.getClass()
之间有什么区别?