我相信这样做的一个令人信服的理由是,它使MyEnum类中的代码更具类型安全性。
考虑到递归部分使这种事情成为可能:
class MyEnum<E extends MyEnum<E>> { private Thing<E> util1() { return someObject } private void util2(E e) {} public int method(E o) { Thing<E> thingy = o.util1(); // You can call the util1 method on o and get a type safe return element. E o1 = // I don't care how you get a parametrized E object. o.util2(o1); // You can call the util2 method with a typesafe parameter. }}
简而言之,该递归使您可以将类型安全方法放在可以在任何E元素上调用的Enum类中,这些调用将是类型安全的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)