【发布时间】:2014-01-14 06:20:46
【问题描述】:
public static double[] processUserInput(String data) {
String[] arrayInString;
double[] arrayInDouble;
int length;
if( data.contains(",") ) {
arrayInString = data.split(",");
length = arrayInString.length;
for(int i = 0; i < length; i++) {
arrayInDouble[i] = Double.parseDouble( arrayInString[i] );
}
}
return arrayInDouble;
}
我正在使用 Netbeans,编译器说变量 arrayInDouble 可能尚未初始化。这是什么意思?
【问题讨论】:
-
String[] arrayInString;双[] arrayInDouble;您尚未初始化这些数组,这就是为什么您收到警告说变量可能未初始化的原因。
-
当我这样做时'double[] arrayInDouble = new double[]{};'它解决了问题,但 arrayInString 没有抱怨它?!
-
@Joshua 唯一一次使用
arrayInString是当data.contains(",")为真时,在这种情况下,您在使用前进行初始化。因此,编译器可以确保您在使用之前初始化该变量。这里的问题是,如果data.contains(",")为假,则您使用的是arrayInDouble而不进行初始化(但您不会使用arrayInString,因此它不会以这种方式抱怨该变量)。跨度> -
@Dennis Meng 你的意思是因为我最后返回了arrayInDouble,所以我必须为变量分配一些东西?所以返回行为是调用“使用变量”?还是我错了?
-
差不多。在返回的情况下,如果变量没有初始化,你返回什么?
标签: java variables initialization