考虑以下内部类:
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>
有效?
答案 0 :(得分:0)
创建Node接口并使用ImplementedNode类实现Node(更好名称)类和枚举EnumNode实现Node工作吗?
是的,这就是我要做的。我会将它们命名为interface INode
,class Node
和enum ENode
。