假设您有一个类,它的构造函数类似于follwing。
public class Clazz {
protected BigDecimal bigDecimal;
public Clazz(BigDecimal bigDecimal) {
this.bigDecimal= bigDecimal;
}
public BigDecimal getBigDecimal() {
return bigDecimal;
}
}
克劳兹只接受至少为零的BigDecimals,即
new Clazz(BigDecimalUtils.minZero(someBigDecimal));
谁负责确保类只使用大于零的BigDecimals实例化?它是类本身(例如在构造函数中)吗?
发布于 2014-07-28 00:51:46
这是你想成为的人,一般来说,我会有类似的东西:
public void setBigDecimal(BigDecimal aBigDecimal) {
if (aBigDecimal.longValue() > 0l) {
this.bigDecimal = aBigDecimal;
} else { throw new IllegalArgumentException("positive numbers only!");
}
然后让构造函数利用上面的方法:
public Clazz(BigDecimal b) {
this.setBigDecimal(b);
}
我希望这是明确的,如果你有进一步的问题,请留下评论。
https://stackoverflow.com/questions/24991284
复制相似问题