Tag: 自我类型

Java字段类型是否为一般递归自我类型的值?

给定一个类层次结构,其中基类定义递归自我类型: abstract class A<T extends A> { } 我如何声明另一个类(在T中不应该是通用的,因为这样的T可能在对象的生命周期内变化),并且一个字段可以包含A的任何子类? 以下不起作用: public class B { //fails to compile, because the capture of ? is not sufficiently narrow private A a; public <T extends A> setA(T a) { this.a = a; } } – 问题结束 – 我注意到一些StackOverflow成员倾向于接近某些难题,“你为什么要这样做?” 以下是我使用此模式的理由 – 您可以注意到Java标准库在其Enum类的定义中也使用递归自我类型: Enum<E extends Enum> 。 同样可以将此问题称为“如何定义Enum类型的字段。 理由示例: abstract […]