“变量可能未初始化”是什么意思?

时间:2014-01-14 06:20:46

标签: java variables initialization

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。这是什么意思?

4 个答案:

答案 0 :(得分:1)

在此

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

答案 1 :(得分:1)

    String[] arrayInString;

这未初始化,但您在提及之前提供了值(arrayInString = data.split(",");),因此没有投诉。

    double[] arrayInDouble;

这也是未初始化的。如果输入不包含逗号,则跳过所有代码,然后尝试返回arrayInDouble的值。警告说,当您执行return时,arrayInDouble可能没有值。

答案 2 :(得分:0)

在使用它们之前,您需要初始化它们(分配一些值)。

答案 3 :(得分:0)

您尚未为这些变量指定任何值

 String[] arrayInString;
 double[] arrayInDouble;

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