在Java的"" + 1
的以下初始化中,我不理解BigInteger
的含义:
BigInteger fact = new BigInteger("" + 1);
答案 0 :(得分:2)
这是一种将整数转换为字符串的懒惰方式。
""+1
是空String和int 1的串联,后者附加到空String,从而生成字符串"1"
。
你也可以写
BigInteger fact = new BigInteger("1");
答案 1 :(得分:2)
正如文档中所写: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html
BigInteger有一个接收String
的构造函数。当您将表达式声明为"" + 1
时,类型将从左到右计算为第一个类型,因此它将是一个String。
它与new BigInteger("1")
为什么有人会这样做,但是除了欺骗学生在课堂上或面试的人超出我的范围之外:)
答案 2 :(得分:0)
这只是将int转换成字符串的懒惰方式。当int是变量时,它可能更有意义。例如
public void doStuff(int i) {
BigInteger fact = new BigInteger("" + i) ;
...
}
正如其他人指出的那样,有其他方法可以达到这个目的但在这种情况下(当int是一个变量时)它可能是最少的字符