如何使用传递枚举到DTO

时间:2013-10-30 04:06:50

标签: java enums dto

我正在传递一个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的“收件人”应该如何接收枚举类型之一的节点?

2 个答案:

答案 0 :(得分:1)

您需要为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
}

答案 1 :(得分: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);
}

}