0
考虑以下内部类:声明的类的枚举类内部作为静态成员
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);
不过,现在我附上状态,不应该有状态,这我关注了一下有一个成员变量。
实际上,当我得到一个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>
工作?
我只是使用静态字段,但使他们最终。我认为枚举方法会使它过于复杂。例如,如果您引入了一个接口,那么您可能需要在其中声明节点行为,然后枚举将必须实现这些行为。 –