-2

我有一个代码,我在其中转换LongBigInteger,反之亦然。在从 转换为LongBigInteger,我想确保没有NullPointerException. 所以代码看起来像这样:

(myModel.getLongVariable()!=null)?BigInteger.valueOf(myModel.getLongVariable()):**??**;

如果你看到?? 部分,我不确定放在那里的默认值。BigInteger 规范不提供像new BigInteger().

这里的每个人都建议的是最明显的选择,即使用BigInteger.ZERO. 但是零是其中一个值,并且会在流程的其余部分中相应地变化。我基本上会把它写在一个xml中,我正在探索是否可以将它设为空白而不是零

任何进一步的建议表示赞赏。

4

3 回答 3

3

null参数返回两个合理的值:

null 是最接近您想要返回的“空白”的东西:

return myModel.getLongVariable() != null
    ? BigInteger.valueOf(myModel.getLongVariable())
    : null;
于 2013-11-12T20:01:52.127 回答
0

假设myModel.getLongVariable()返回一个Long对象:您可以使用BigInteger.ZERO默认值:

myModel.getLongVariable()!=null)? BigInteger.valueOf(myModel.getLongVariable())
                                : BigInteger.ZERO;

该类的其他常量字段BigInteger是:

  1. BigInteger.ONE: BigInteger 常数一
  2. BigInteger.TEN: BigInteger 常数十。

还有一个常数,在文档中没有提到不让任何人知道:

BigInteger.TWO: 的值为2,即private

编辑:

BigInteger 规范不提供像 new BigInteger() 这样的默认构造函数。

BigInteger是公开课。谁阻止你扩展和实现这个构造函数?

public class CBigInteger extends BigInteger {


    public CBigInteger()
    {
        super("-12345678944546"); // testing with a default value
    }
}

BigInteger cBig = new CBigInteger();
System.out.println(cBig.toString()); // prints "-12345678944546"
于 2013-11-12T20:03:25.240 回答
-1

My suggestion: You give it a default value.

 BigInteger mydefault = BigInteger.ZERO;
于 2013-11-12T19:58:38.160 回答