在阅读一个java程序时,我遇到了下面这行代码
Class<? extends VersionedProtocol> protocol;
代表什么<? extends VersionedProtocol>
?这是定义类的机制吗?
在阅读一个java程序时,我遇到了下面这行代码
Class<? extends VersionedProtocol> protocol;
代表什么<? extends VersionedProtocol>
?这是定义类的机制吗?
该类Class
有一个表示自身的泛型类型参数。所以这里Class<? extends VersionedProtocol>
的意思是一个Class
对象代表的VersionedProtocol
类或子类VersionedProtocol
。
这在 Java 泛型中称为上限通配符。
如果您不想深入了解 Java 泛型概念的详细信息,请记住以下几点,您仍然可以毫无问题地阅读该程序。
Class<? extends VersionedProtocol> protocol;
与Class protocol;
所以,无论你在哪里遇到通用语法,都忽略<>
标签中的任何内容;你应该准备好了。