【发布时间】:2019-05-24 09:12:40
【问题描述】:
我读过this SO question,它谈到了java中类和类型之间的区别
但是,这里讨论的是使用 class 关键字声明的类,而不是 java 中的实际类 Class。在Java中,我可以有一个Class<T>,其中T是一个类/接口/数组类型(对于原语,T将是自动装箱类,但Class<T>的实例将与原语类型相关联,例如作为int.class)。重点是,Class 不仅仅用于类类型。
【问题讨论】:
-
您是否费心阅读文档?
Class:表示正在运行的 Java 应用程序中的 类 和 接口。Type:包括原始类型、参数化类型、数组类型、类型变量和原始类型。Type是一个接口。Class是一个实现该接口的类。可以在Type的javadoc 中找到。您甚至链接了 javadoc。现在阅读。 -
@Andreas 我确实读过,但是文档只提供了技术细节,而下面的答案也提供了实用细节。
-
@Andreas 另外,我已经解释了为什么“原始类型、参数化类型、数组类型、类型变量和原始类型”不清楚:
Class<int[]>是可能的,但同时Class“表示[s] 类和接口”,那么为什么int[]可以作为类型参数呢? -
除了
GenericArrayType、ParameterizedType、TypeVariable和WildcardType类型的对象之外,还需要什么其他实用细节不是Class对象,而是都是Type对象吗?
标签: java class reflection types