Java为参数提供了一个可能的列表

问题描述:

我想创建一个具有多种可能性的参数。更准确地说,在这个方法中,我想要有不同级别的警告,比如0,1,2和3.当你键入它时,你只有这4种可能性。Java为参数提供了一个可能的列表

例如:setFoobar(1,“Yo”);

+1

'enum'如何? – maba

考虑使用,一个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,但他们是无辜的。你能解释一下,还是你知道如何使用枚举的好教程? –

的Java enums可以提供这种功能。