Java中的Type家族简单介绍

之前用反射的时候,基本都是Class。最近弄生成接口文档工具的时候,又接触了一下ParameterizedType,偶然的机会发现两者居然有联系:顶级的接口都是Type。于是就统一整理下Type家族的东西。

Type是Java编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。

  • 原始类型:Class类的实例表示正在运行的Java应用程序中的类和接口。枚举是一种类,注解是一种接口。每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象。基本的Java类型(boolean、byte、char、short、int、long、float 和 double)和关键字void也表示为Class对象。
  • 参数化类型:ParameterizedType表示参数化类型,如Collection<String>。
  • 数组类型:GenericArrayType表示一种数组类型,其组件类型为参数化类型或类型变量。
  • 类型变量:TypeVariable是各种类型变量的公共高级接口。
  • 基本类型:就是我们所说的Java的基本类型,即int,float,double等。

此外,WildcardType表示一个通配符类型表达式,如?、? extends Number或? super Integer。 

1、原始类型

Class是Type的一个实现类,属于原始类型,是Java反射的基础,对Java类的抽象。

在程序运行期间,每一个类都对应一个Class对象,这个对象包含了类的修饰符、方法、属性、构造等信息,所以我们可以对这个Class对象进行相应的操作,这就是Java的反射。

2、参数化类型

接口方法:

用法示例: 

3、数组类型

接口方法:

用法示例: 

4、变量类型 

接口方法:

用法示例: 

5、泛型表达式(通配符表达式) 

接口方法: 

用法示例: 

推荐阅读:https://www.cnblogs.com/linghu-java/p/8067886.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值