2014-02-18 20 views
0

我想創建一個具有多種可能性的參數。更準確地說,在這個方法中,我想要有不同級別的警告,比如0,1,2和3.當你鍵入它時,你只有這4種可能性。Java爲參數提供了一個可能的列表

例如:setFoobar(1,「Yo」);

+1

'enum'如何? – maba

回答

3

考慮使用,一個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; 
    } 

} 
+0

你知道很好的例子,因爲我不太瞭解枚舉 –

+0

@ 3751_Creator什麼不清楚? – qqilihq

+0

我不知道如何在方法中實現它們。我ddi看javadocs,但他們是無辜的。你能解釋一下,還是你知道如何使用枚舉的好教程? –

相關問題