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尚未初始化。知道如何解决这个问题吗?
答案 0 :(得分:0)
与成员变量不同,Java中默认不初始化局部变量。在Java中,默认情况下,成员变量(对象)被初始化为null
。因此编译器不会抱怨,但您的代码将在运行时抛出NullPointerException
。要避免异常,您必须在使用它之前创建它的实例(使用new
)。
在您的情况下,您需要在使用之前创建阵列的新实例。试试这个:
int [][]imageRGB = new int[length][length];
如果您不确定imageRGB的长度,请尝试在Java中使用List或Set Collection。
List<List<Integer>> = new ArrayList<>();