类<? 扩展 A> vs 只是 A

电子烟
Class<? extends A> classB

对比

A classB

这里有什么区别?只是第一个是 the 的实例,Class第二个是实际的实例Object吗?

扫地机

Class<? extends A>并且A是完全不同的两种类型。

类型变量Class<? extends A>包含有关类的信息类可以是A或任何扩展的类A,具体取决于变量的值。你可以用Class<? extends A>变量做的事情包括:获取类中声明的所有字段名称、获取类中声明的所有方法名称、获取类的超类等等。

类型变量A指的是 的实例A如果你声明了一个foo在 class 中调用的非静态方法A,那么你可以foo直接用这个变量调用

yourVariable.foo();

如果yourVariable是 type ,则不能直接执行此操作Class<? extends A>

看到这里的区别了吗?Class<? extends A>有点像“元类型”,其实例包含有关类型的信息(此类型可以是A或 的子类A),而A是您声明的类型。的实例A表示该类所模仿的任何事物。一个Bicycle的实例代表一辆自行车。它可能有像pedal这样的方法turn和像这样的字段durability的实例Class<? extends Bicycle>会告诉你这样的事情:在 Bicycle 类中,有一个名为 的字段durability,还有一个名为 的方法pedal

基本上,“元”是这里的关键字。Class是代表一个类的类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章