方法中的局部变量

时间:2015-10-20 21:38:09

标签: java variables methods range

public static int[][] toRGB(float[][] gray) {
    int [][]imageRGB;
    for(int i=0; i<gray.length;i++) {
        for(int j=0; j< gray[0].length; j++) {
            imageRGB[i][j]=getRGB(gray[i][j]);
        }
    }
    return imageRGB;
}

此方法无效。 Java告诉我,这是因为变量imageRGB尚未初始化。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

与成员变量不同,Java中默认不初始化局部变量。在Java中,默认情况下,成员变量(对象)被初始化为null。因此编译器不会抱怨,但您的代码将在运行时抛出NullPointerException。要避免异常,您必须在使用它之前创建它的实例(使用new)。

在您的情况下,您需要在使用之前创建阵列的新实例。试试这个:

int [][]imageRGB = new int[length][length];

如果您不确定imageRGB的长度,请尝试在Java中使用List或Set Collection。

List<List<Integer>> = new ArrayList<>();