我想創建一個具有多種可能性的參數。更準確地說,在這個方法中,我想要有不同級別的警告,比如0,1,2和3.當你鍵入它時,你只有這4種可能性。Java爲參數提供了一個可能的列表
例如:setFoobar(1,「Yo」);
我想創建一個具有多種可能性的參數。更準確地說,在這個方法中,我想要有不同級別的警告,比如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,但他們是無辜的。你能解釋一下,還是你知道如何使用枚舉的好教程? –
的Java enums
可以提供這種功能。
'enum'如何? – maba