相关疑难解决方法(0)

Java Enum定义

我以为我很了解Java泛型,但后来我在java.lang.Enum中遇到了以下内容:

class Enum<E extends Enum<E>>
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何解释这个类型参数?用于提供可以使用类似类型参数的其他示例的加分点.

java generics enums crtp

146
推荐指数
3
解决办法
2万
查看次数

为什么在java enum中声明为Enum <E extends Enum <E >>

可能重复:
java Enum定义

更好的公式化问题,不被认为是重复的:
如果Enum声明没有递归部分,那么在Java中会有什么不同

如果语言设计师只使用Enum <E extends Enum>会对语言产生什么影响呢?

现在唯一的区别就是有人会写作

A extends Enum<B>

但是因为在java中不允许扩展枚举仍然是非法的.我也在想有人为jvm提供一个字节码,将字符串定义为扩展枚举 - 但是泛型不会影响它,因为它们都被删除了.

那么宣言的重点是什么呢?

谢谢!

编辑 为简单起见,让我们来看一个例子:

interface MyComparable<T> {
    int myCompare(T o);
}

class MyEnum<E extends MyEnum> implements MyComparable<E> {
    public int myCompare(E o) { return -1; }
}

class FirstEnum extends MyEnum<FirstEnum> {}

class SecondEnum extends MyEnum<SecondEnum> {}

这个类结构有什么问题?可以做些什么"MyEnum <E扩展MyEnum <E >>"会限制?

java enums

37
推荐指数
1
解决办法
2万
查看次数

自我约束的泛型

这些通用之间是否存在任何实际差异

public class SelfBounded <T extends SelfBounded<T>>{}
Run Code Online (Sandbox Code Playgroud)

还有这个

public class SelfBounded <T extends SelfBounded>{}  
Run Code Online (Sandbox Code Playgroud)

如果是,那我该如何观察呢?

java generics

8
推荐指数
1
解决办法
1670
查看次数

标签 统计

java ×3

enums ×2

generics ×2

crtp ×1