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] 删除。
我来说两句