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>
工作?
我只是使用靜態字段,但使他們最終。我認爲枚舉方法會使它過於複雜。例如,如果您引入了一個接口,那麼您可能需要在其中聲明節點行爲,然後枚舉將必須實現這些行爲。 –