Java为参数提供了一个可能的列表
我想创建一个具有多种可能性的参数。更准确地说,在这个方法中,我想要有不同级别的警告,比如0,1,2和3.当你键入它时,你只有这4种可能性。Java为参数提供了一个可能的列表
例如:setFoobar(1,“Yo”);
考虑使用,一个enum
:
public enum Severity {
DEBUG, INFO, WARN, ERROR
}
[编辑]想象一下,你有记录消息有不同的紧迫感一些方法。 enum
表示这一点。在你的方法,然后你可以这样做:
switch (severity) {
case DEBUG:
// ignore
break;
case INFO:
System.out.println(message);
break;
case WARN:
case ERROR:
System.err.println(message);
break;
}
...或者只是做一些比较:
if (severity == Severity.WARN || severity == Severity.ERROR) {
System.err.println(message);
}
在那旁边,一个enum
很像一个正常class
,这意味着你可以添加状态(如实例变量)和方法。例如,你可以移动上面给出直接进入enum
逻辑,像这样:
public enum Severity {
DEBUG("Some low-level logging output"),
INFO("Informational output"),
WARN("A warning"),
ERROR("A serious error");
private String description;
private Severity(String description) {
this.description = description;
}
public void output(String message) {
switch (this) {
case DEBUG:
// ignore
break;
case INFO:
System.out.println(message);
break;
case WARN:
case ERROR:
System.err.println(message);
break;
}
}
public String getDescription() {
return description;
}
}
你知道很好的例子,因为我不太了解枚举 –
@ 3751_Creator什么不清楚? – qqilihq
我不知道如何在方法中实现它们。我ddi看javadocs,但他们是无辜的。你能解释一下,还是你知道如何使用枚举的好教程? –
'enum'如何? – maba