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;
这没有初始化,但您在引用它之前提供了一个值(arrayInString = data.split(",");
),因此没有投诉。
double[] arrayInDouble;
这也是未初始化的。如果输入不包含逗号,则跳过所有代码,然后尝试返回 arrayInDouble
的值。警告指出,当您执行return
时,arrayInDouble
可能没有值。
在此
String[] arrayInString;
double[] arrayInDouble;
你只是声明它们,在使用它们之前,你还需要初始化:
String[] arrayInString = new String[length1];
double[] arrayInDouble = new double[length2];
其中length
是数组的长度。
PS:还有其他方法可以初始化它们,例如:
double[] arrayInDouble = {1.1, 2.2}; // The length of the array will be the number of elements in brackets
它们之前,您需要初始化它们(分配一些值)。
您尚未为这些变量分配任何值
String[] arrayInString;
double[] arrayInDouble;
这些变量是局部变量,因此在使用前需要对其进行初始化,因为它们不会获得任何默认值。