Java泛型扩展

塔龙

我正在看一个差异文件,看到了以下代码:

public interface Vector<T extends Vector>

被以下代码替换:

public interface Vector<T extends Vector<T>>

我头缠不住,有什么区别?它们的工作方式有何不同?

叶夫根尼(Evgeniy Dorofeev)

这两个声明之间的区别在于,第一个声明产生编译器警告,而第二个则不。这是因为泛型类型应始终与参数一起使用。

该声明确保了X如果实现Vector,则必须是X的Vector:

class X implements Vector<X> {
...

其他任何事情都会产生编译器错误。

实际上,在JDK中使用了这样的构造:

public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable {
...

这意味着当我们声明枚举X时(隐式)扩展 Enum<X>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java泛型扩展

来自分类Dev

Java泛型扩展

来自分类Dev

Java泛型扩展语法

来自分类Dev

扩展并扩展了Java中泛型的组合

来自分类Dev

Java泛型中的边界扩展通配符

来自分类Dev

java泛型T扩展了Simpletype吗?

来自分类Dev

Java:使用泛型扩展类

来自分类Dev

Java中的泛型,扩展接口

来自分类Dev

Java泛型中的边界扩展通配符

来自分类Dev

在java中扩展多个类的泛型

来自分类Dev

Java 泛型:如何扩展另一个泛型类的泛型类

来自分类Dev

Java泛型:<B扩展BaseB>与<?不匹配 扩展BaseB>

来自分类Dev

Java泛型-使用泛型函数扩展泛型类

来自分类Dev

泛型与扩展方法

来自分类Dev

如何正确创建在Java中扩展泛型接口的有界泛型类

来自分类Dev

Java集合泛型<?扩展Employee>抛出异常

来自分类Dev

Java泛型:方法声明参数中的类型扩展

来自分类Dev

Java泛型E扩展Comparable <E>留下警告

来自分类Dev

扩展或为父类的Java泛型类型

来自分类Dev

Java集合泛型<?扩展Employee>抛出异常

来自分类Dev

<E的可实例化Java泛型扩展了Comparable <E >>

来自分类Dev

带有扩展名的泛型的正确Java语法

来自分类Dev

Java 泛型:无法将 <X> 转换为 <? 扩展 X>

来自分类Dev

泛型扩展和实现

来自分类Dev

在Swift中扩展泛型?

来自分类Dev

泛型类型的扩展方法

来自分类Dev

泛型类型与扩展方法

来自分类Dev

泛型数组的快速扩展

来自分类Dev

泛型方法 T 扩展