Java 获取错误“;变量veryFar可能尚未初始化";带大整数

Java 获取错误“;变量veryFar可能尚未初始化";带大整数,java,android,Java,Android,我正在做一个转换器,将数字转换成文本。我做了本文中所说的一切,并对其进行了编辑,以使用大整数,但它显示了一个未初始化的变量 我编辑了一些东西,使其与大整数兼容,以获得更大的数字,但它只是显示变量veryFar可能未初始化。(我编辑了变量名以尝试修复它!) package com.example.convertnumbertotext; 导入java.math.biginger; 导入java.text.DecimalFormat; 公共类英语数字词{ 私有静态BigInteger bi=新的Bi

我正在做一个转换器,将数字转换成文本。我做了本文中所说的一切,并对其进行了编辑,以使用大整数,但它显示了一个未初始化的变量

我编辑了一些东西,使其与大整数兼容,以获得更大的数字,但它只是显示变量veryFar可能未初始化。(我编辑了变量名以尝试修复它!)

package com.example.convertnumbertotext;
导入java.math.biginger;
导入java.text.DecimalFormat;
公共类英语数字词{
私有静态BigInteger bi=新的BigInteger(“100”);
私有静态BigInteger bi2=新的BigInteger(“20”);
私有静态BigInteger bi3=新的BigInteger(“10”);
私有静态最终字符串[]tensNames={”、“十”、“二十”、“三十”、“四十”,
“五十”、“六十”、“七十”、“八十”、“九十”};
私有静态最终字符串[]numNames={“,”一“,”二“,”三“,”四“,”五“,
“六”、“七”、“八”、“九”、“十”、“十一”、“十二”、“十三”,
“十四”、“十五”、“十六”、“十七”、“十八”、“十九”};
私有静态字符串convertlessthannethousand(BigInteger数字){
字符串veryFar;
BigInteger[]bii=数字、除数和维护器(bi);
BigInteger[]bii2=数字、除法器和维护器(bi3);
int resut=bii[1]。与(bi2)相比;
如果(结果==-1){
veryFar=numNames[bii[1].intValue();
数字=数字。除以(bi);
}else if(resut==1 | | resut==0){
veryFar=numNames[bii2[1].intValue();
数字=数字除以(bi3);
veryFar=tensNames[bii2[1].intValue()]+veryFar;
数字=数字除以(bi3);
}
if(number.compareTo(BigInteger.valueOf(0))==0)
返回veryFar;
返回numNames[number.intValue()]+“百”+veryFar;
}
}
它显示了两条相同的错误消息- 错误:变量veryFar可能尚未初始化
错误:变量veryFar可能尚未初始化

已修剪,您有以下代码:

如果结果不是-1、0或1,则这些块都不会执行。在这种情况下,
veryFar
将永远不会被赋值


要么在声明它时初始化它(如
String veryFar=null
),要么添加一个
else
大小写来为它赋值。

注意
compareTo
的契约是它返回
0
,而不是
-1
0
1

与-1和1进行比较有时可能确实有效,但通常不起作用(例如,它不适用于比较字符串),并且对类的内部实现细节的更改很脆弱

因此,将您的条件更改为:

if (resut < 0) { // instead of == -1
  // ...
} else { // instead of == 0 || == 1
  // ...
}
if(resut<0){//而不是==-1
// ...
}else{//而不是==0 | |==1
// ...
}

然后您的变量将始终被初始化。

在声明时必须初始化字符串变量。就错误而言,只需说
stringveryfar=“”我认为这将解决问题您尚未初始化它,这可能会导致问题:
字符串veryFar
只是一个声明,它不设置任何值。如果您只是想避免出现错误消息,请编写
String veryFar=“”。仅当
结果
0
1
-1
时,才初始化
veryFar
。这意味着如果这些条件都不满足,您的变量将不会初始化,因此会出现错误。谢谢大家!!谢谢你的帮助
if (resut < 0) { // instead of == -1
  // ...
} else { // instead of == 0 || == 1
  // ...
}