Java中泛型T和Class<T>以及Class<?>的理解

步骤1,先看一个表达“字符串1<字符串2>”:
整个表达代表一个类名为“字符串2”的类。类名“字符串2”的类是类名为“字符串1”的子类。
步骤2,再看一个表达“字符串1< T >”:
整个表达代表一个类名为“T”的类。类名为“T”的类是类名为“字符串1”的子类。既然“T”是类名为“字符串1”的子类,那么是哪个子类呢?所以要用的时候,要指定确定的名字 ,声明时编译器不会检查这类名到底存不存在,但是实例化时就必须校验这类名到底存不存在了,要不到底实例化哪个子类呢?就像步骤1的一样,已经知道了类名为“字符串2”的类是类名为“字符串1”的子类。
步骤3:再看一个表达“字符串1<?>”:
该表达也代表一个类,但是类名就不指定了,但是,是类名为“字符串1”的类的任意子类。
步骤4:再看一个表达“Class<?>”:
该表达式也代表一个类,与步骤3一样,类名不指定,但是,是名字为“Class”的类的子类。但是,名字“Class”比较特殊,它代表最大的类。所以整个表达式就代表任意类,最大程度体现泛型的意义。
步骤5:再看一个表达“Class< T >”:
整个表达式代表一个类,类名为"T",是名字为“Class”的子类,但是名字“Class”比较特殊,它是最大的类。所以整个表达式就代表任意类的指定类名的子类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值