有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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_HEADFAKE_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) 个答案

  1. # 1 楼答案

    Would creating a Node interface and having an class ImplementedNode implements Node (better name wanted) class and enum EnumNode implements Node work?

    是的,这就是我要做的。我会把它们命名为interface INodeclass Nodeenum ENode