2013-10-30 66 views
0

我正在传递其中一个实例变量应该是ENUM类型的DTO。然而,枚举是在另一个类中定义的,该类是创建DTO的类。如何使用传递枚举到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和节点之间共享枚举?

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

回答

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 
} 
+0

节点的“收件人”应该如何接收其中一个类型为枚举的节点? – JavaDeveloper

+0

看看我编辑过的答案来解释,这可以如何实现。 – SudoRahul

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); 
} 

}