-3

在阅读一个java程序时,我遇到了下面这行代码

Class<? extends VersionedProtocol> protocol;

代表什么<? extends VersionedProtocol>?这是定义类的机制吗?

4

2 回答 2

2

该类Class有一个表示自身的泛型类型参数。所以这里Class<? extends VersionedProtocol>的意思是一个Class对象代表的VersionedProtocol类或子类VersionedProtocol

这在 Java 泛型中称为上限通配符

于 2013-09-04T19:47:23.393 回答
0

如果您不想深入了解 Java 泛型概念的详细信息,请记住以下几点,您仍然可以毫无问题地阅读该程序。

  1. 泛型主要是为了编译时安全,因此在运行时不存在。
  2. 您可以阅读Class<? extends VersionedProtocol> protocol;Class protocol;

所以,无论你在哪里遇到通用语法,都忽略<>标签中的任何内容;你应该准备好了。

于 2013-09-04T19:52:06.433 回答