使用静态字段作为方法的配置选项

时间:2011-06-27 09:11:20

标签: java design-patterns

我在Java中注意到了一种模式,我想知道它是否有一个名称,所以我可以查找其他语言的实现。

我已经看到用作方法参数的类的静态final字段。这会将方法的调用者限制为该参数的公共值集。例如:

public class Calendar {

    public static final int JANUARY = 1;
    public static final int FEBRUARY = 1;
    //and so on

    public void setMonth(int month){
       //set month
    }
}

Calendar c = new Calendar();
c.setMonth(Calendar.JANUARY);

这个模式有名字吗?感谢...

(编写为工作代码的例子,自编写Java以来​​已经很长时间了)

3 个答案:

答案 0 :(得分:6)

虽然您的示例有误,但我认为您正在寻找enum

答案 1 :(得分:1)

public class Calendar {

    public enum Month {
        JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
    }

    private Month month;

    public void setMonth(Month month){
       this.month = month;
    }
}

答案 2 :(得分:0)

你应该定义枚举

enum Month
{
Jan,Feb,Mar,Apr;
}
class Sample
{
public static void main(String arg[])
{
Month m=Month.Mar;
System.out.println(m); // Mar
}
}