考虑以下代码

public class ColorScheme {

    public static final int     DARK_BLACK  = 0,
                                WHITE       = 1;

    private int Scheme;

    public ColorScheme() {
        this.Scheme     =   DARK_BLACK;
    }

    public ColorScheme(int SchemeType) {
        this.Scheme     =   SchemeType;
    }
}


我希望将构造函数ColorScheme(int SchemeType)的参数限制为static final int-DARK_BLACKWHITE之一或我可能定义的其他常量。

例如:当有人实例化ColorScheme类时,他可以使用

 ColorScheme CS  = new ColorScheme(DARK_BLACK);




 ColorScheme CS  = new ColorScheme(5); //or any other non-defined constant


应该返回一个错误。

最佳答案

枚举是要走的路:

public class ColorScheme {

    public enum Color {DARK_BLACK,
                       WHITE}

    private Color Scheme;

    public ColorScheme() {
        this.Scheme     =   Color.DARK_BLACK;
    }

    public ColorScheme(Color SchemeType) {
        this.Scheme     =   SchemeType;
    }
}

关于java - 将参数限制为某些已定义的常量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7544994/

10-10 01:14