【发布时间】:2015-02-08 02:28:50
【问题描述】:
我有一个叫做像素的类。我正在制作一个构造函数,它接收单个像素的红色、绿色、蓝色、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){
}
}
【问题讨论】:
-
为什么不使用条件语句?
-
你需要做一些事情如果给定的值在0..255区间内。这是一个条件。您可以使用三元运算符,但这本质上是
if语句的较短版本。我真的不明白为什么避免ifs 会有好处。 -
我也想知道您为什么要避免使用条件,但是您是否使用注释进行了调查?可能有一些现有的验证注释库,或者您可以编写自己的...
-
抱歉,我在某种程度上误导了这个问题。我一直在寻找不使用 if 语句的捷径。基本上,我想知道 java 是否有一些我可以导入的东西可以为我检查我的论点。理论上我可以使用 if 语句,但我希望我的代码也易于阅读。
-
@Quinty,assert 语句会执行此操作,并且在您的情况下是推荐的做法。
标签: java pixel data-manipulation