java将类中的类的枚举声明为静态成员
考虑下面的内部类:
private static class Node<E> {
public E value;
public Node<E> next;
public Node<E> previous;
public Node(final E value) {
this.value = value;
}
public boolean hasNext() {
return (next != null);
}
public boolean hasPrevious() {
return (previous != null);
}
@Override
public String toString() {
return "(" + value + ")";
}
}
有没有(直观的)方法来声明FAKE_HEAD
和FAKE_TAIL
变量
我知道我可以在课堂上添加以下内容:
public static Node<E> FAKE_HEAD = new Node<>(null);
public static Node<E> FAKE_TAIL = new Node<>(null);
然而,现在我将state附加到一个成员变量上,该变量不应该有state,我对此有点担心
在实践中,当我得到一个Node<E> node
并想检查它是否是假头时,我会调用if (node == FAKE_HEAD)
我希望它是一个枚举,如:
public static enum Node<E> {
FAKE_HEAD,
FAKE_TAIL
}
然而,枚举也应该是Node<E>
,因为我希望能够将FAKE_HEAD
引用为Node<E>
我将如何实现这样的设计?创建Node<E>
接口并拥有class ImplementedNode<E> implements Node<E>
(需要更好的名称)类和enum EnumNode<E> implements Node<E>
有效吗
# 1 楼答案
是的,这就是我要做的。我会把它们命名为
interface INode
、class Node
和enum ENode