在阅读一个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;所以,无论你在哪里遇到通用语法,都忽略<>标签中的任何内容;你应该准备好了。