如何在不使用条件if语句的情况下设置类不变量

时间:2015-02-08 02:28:51

标签: java pixel data-manipulation

我有一个叫做像素的类。我正在制作一个构造函数,它接受单个像素的红色,绿色,蓝色,alpha值。我怎样才能使程序只使用有效值(例如0到255)而不使用if语句? 以下是我的课程:

public class Pixel {
    public int redPix;
    public int bluePix;
    public int greenPix;
    public int alpha;

    public Pixel(int redPix , int bluePix , int greenPix , int alpha) {
        this.redPix = redPix;
        this.bluePix = bluePix;
        this.greenPix = greenPix;
        this.alpha = alpha;
    }


    public void setRed(int redPix) {
        this.redPix = redPix;
    }
    public int getRed() {
        return(redPix);
    }

    public void setBlue(int bluePix) {
        this.bluePix = bluePix;
    }

    public int getBlue() {
        return(bluePix);
    }

    public void setGreen(int greenPix) {
        this.greenPix = greenPix;
    }

    public int getGreen() {
        return(greenPix);
    }

    public void setAlpha(int alpha) {
        this.alpha = alpha;
    }

    public int getAlpha() {
        return(alpha);
    }

    public static void main(String[] args){
    }


}

2 个答案:

答案 0 :(得分:3)

您可以使用断言来指定类不变量。它实际上建议用于私有方法。

assert x >= 0 && x <= 255;

答案 1 :(得分:0)

可能,你能做的最好就是编写像这样的方法助手:

private void checkArg(int arg) {
        if (arg < 0 || arg > 255) {
            throw new IllegalArgumentException("Wrong argument: " + arg);
        }
    }

然后在所有方法的开头使用它。