1

我正在传递一个 DTO,其实例变量之一应为 ENUM 类型。但是,枚举是在另一个类中定义的,即创建 DTO 的类。

一个简短的总结:

public class Node {
    Enum nodeType; <--- should belong 
    Node (Enum nodeType) {
        this.nodeType = nodeType;
    }
}


public class CreateNode {
   Enum { TEXT_NODE, ATTR_NODE };

   Node returnNode() {
      // return node of Enum TEXT_NODE.
   } 

 }

现在,

  1. 应该怎么做才能在 CreateNode 和 Node 之间共享枚举?

  2. Node 的“接收者”应该如何接收类型为 enum 的节点?

4

2 回答 2

2

您需要为您的enum.

enum NodeType { // Name of the enum is NodeType
    TEXT_NODE, ATTR_NODE
}
class Node {
    NodeType nodeType; // A field of type NodeType
    public Node(NodeType nodeType) {
        this.nodeType = nodeType;
    }
}
class CreateNode {
    Node returnNode() {
        return new Node(NodeType.TEXT_NODE); // return the TEXT_NODE
    }
}

为了能够NodeType在其他类/方法中获得具有此集合的节点,您可以执行以下操作

// In some class
// In some method
public void someMethod(){
    Node nodeWithEnumType = new CreateNode().returnNode();
    // Other stuffs
}
于 2013-10-30T04:10:52.837 回答
1
public class Node {
    CreateNode.NodeType nodeType;

    public Node(CreateNode.NodeType nodeType) {
        this.nodeType = nodeType;
    }
}

class CreateNode {
    enum NodeType {
        TEXT_NODE,
        ATTR_NODE
    };

    public Node returnNode() {
        return new Node(NodeType.TEXT_NODE);
    }
}
于 2013-10-30T04:13:22.550 回答