"变量可能尚未初始化"是什么意思?


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;

这些变量是局部变量,因此在使用前需要对其进行初始化,因为它们不会获得任何默认值。

最新更新