我正在传递一个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.
}
}
现在,
如何在CreateNode和Node之间共享枚举?
Node的“收件人”应该如何接收枚举类型之一的节点?
答案 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);
}
}