java枚举用法获取和设置
我在这里尝试在类对象中获取和设置枚举,但不确定如何执行。这就是我目前所拥有的。我已经查了所有我能查到的例子,有些太复杂了,我无法理解。需要帮忙吗java枚举用法获取和设置,java,enums,Java,Enums,我在这里尝试在类对象中获取和设置枚举,但不确定如何执行。这就是我目前所拥有的。我已经查了所有我能查到的例子,有些太复杂了,我无法理解。需要帮忙吗 public class EnumExample { public static class Task { private String _task; public enum Priority { ZERO (0), MAYBE (1), LOW (2), MEDIUM (3), HIGH (4), EXTREM
public class EnumExample {
public static class Task {
private String _task;
public enum Priority {
ZERO (0), MAYBE (1), LOW (2), MEDIUM (3), HIGH (4), EXTREME (5);
private int _priority;
Priority() {
_priority = 0;
// Does this set set the default priority level to 0??
}
Priority(int priority) {
_priority = priority;
// This is where I can set the priority level of this task??
}
public int getPriority() {
return _priority;
}
public void setPriority(int priority) {
_priority = priority;
}
}
}
public static void main(String[] args) {
Task task = new Task();
task._task = "Study for test";
System.out.println(task._task);
System.out.println(task.getPriority());
// How do I set the priority level for task "study for test"??
// task.Priority = task.Priority.EXTREME;
// How do I retrieve the value of priority??
// System.out.println(task._task.getPriority());
}
}您已经在类中定义了名为Priority的枚举类型,但要使任务具有优先级,必须在类中具有Priority类型的成员变量:
public static class Task {
private String task;
private Priority priority;
然后,您只需通过设置成员来使用任务,例如使用setter方法:
public Priority getPriority() {
return priority;
}
public Priority setPriority(Priority priority) {
this.priority = priority;
}
然后在您的主要方法中:
task.setPriority(Priority.LOW);
关于枚举中的getter/setter,因为优先级类型的语义是表示某个固定优先级,所以不应该有setter。您可能还可以去掉变量本身(因此也可以去掉getter),因为枚举本身很好地代表了任务的优先级(默认情况下,枚举已经有了序号)
因此,枚举声明可以简单地表示为:
public enum Priority {
ZERO, MAYBE, LOW, MEDIUM, HIGH, EXTREME;
}
注意:按照标准Java代码样式,您不应该将下划线作为成员的开头。请改用camelCase。您可以使用枚举的
ordinal()
方法获取其位置。然后,您可以使用它来获取值优先级
public class Task {
private Priority priority = Priority.ZERO; // Default priority
private String name = "";
public enum Priority {
ZERO, MAYBE, LOW, MEDIUM, HIGH, EXTREME;
}
public Task(String name) {
this.name = name;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPriority(Priority p) {
this.priority = p;
}
public Priority getPriority() {
return priority
}
public static void main(String[] args) {
Task t = new Task("Washing up");
t.setPriority(Priority.HIGH);
System.out.println(t.getName()); // Washing up
System.out.println(t.getPriority().toString()); // This gets the string of HIGH
System.out.println(t.getPriority().ordinal()); // this gives 4
}
}
您甚至还没有为类中的枚举类型定义字段。您必须就stackoverflow提出特定问题。“有什么帮助吗?”不是很具体。好的,罗希特和卡佳,你的两条评论有助于我进一步。。我已为类中的枚举类型定义了一个字段。。现在,我正试图获得和设置的领域。我不知道该怎么做才好!非常感谢。