作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Class<? extends A> classB
对比
A classB
这里有什么区别?难道只是第一个是 Class
的实例,第二个是实际 Object
的实例?
最佳答案
Class<? extends A>
和A
完全是两种不同的类型。
Class<? extends A>
类型的变量包含有关类的信息。该类可以是 A
或任何扩展 A
的类,取决于变量的值。您可以使用Class<? extends A>
做的事情变量包括:获取类中声明的所有字段名、获取类中声明的所有方法名、获取类的父类(super class)等等。
A
类型的变量引用 A
的实例。如果您声明了一个名为 foo
的非静态方法在类里面A
,然后您可以调用foo
直接使用此变量:
yourVariable.foo();
如果yourVariable
,则不能直接执行此操作类型为Class<? extends A>
.
看到这里的区别了吗? Class<? extends A>
有点像“元类型”,其实例包含有关类型的信息(此类型可以是 A
或 A
的子类),而 A
是您声明的类型。 A
的一个实例代表类所模仿的任何事物。 Bicycle
的一个实例类代表一辆自行车。它可能有类似 pedal
的方法和turn
和类似 durability
的字段。 Class<? extends Bicycle>
的一个实例会告诉你这样的事情:在 Bicycle 类中,有一个名为 durability
的字段。 ,并且有一个名为 pedal
的方法.
基本上,“meta”是这里的关键字。 Class
是一个代表一个类的类。
关于java - 类之间的区别<?扩展 A> 与仅 A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51779481/
我是一名优秀的程序员,十分优秀!