Short s = somevalue; // could be negative or positive
myobject.setMyShort(Math.abs(s));
我无法更改myShort MyObject的字段类型,同时Math.abs只返回int值。 这种方式是否正确或是否会导致原始值的变化?
myobject.setMyShort((short) Math.abs(s));
答案 0 :(得分:2)
这是正确的方法 - 如果你确定你的论点很短 - 那么它将被安全地铸造。
答案 1 :(得分:0)
更好的方法是编写Math.abs()
方法,代码更清晰:
public abstract class MathUtils {
public static short absShort(short a){
return a > 0 ? a : -a;
}
}