gpt4 book ai didi

尝试在 java static 中打印矩阵值时出现 java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-01 23:21:17 25 4
gpt4 key购买 nike

请你帮帮我好吗?这是我的java作业,我没有完成,我只是想看看它是否有效这是我试图运行的代码,由于某种原因我收到错误

java.lang.NullPointerException 

我认为这是静态的东西

public  class  Matrix {
public static int[][] res ;

public static void main () {
System.out.println(Square());
}

public Matrix () {
int[][] res = {{1,2,3}, {4,5,6}};
}

public static int getElement (int r, int c) {
return res[r][c];
}

public static int getNumberOfRows () {
return res.length;
}

public static int getNumberOfColumns () {
return 1;//return res[0].length;
}

public static int Square() {
int count;
int row=getNumberOfRows();
int col=getNumberOfColumns();
if (col==row) {
for(int i=0;i< row ;i++) {
for(int j=0;j< col ;j++) {
return 5;

// if (res[row-i][col-1]!=1) {
// return 0;
// }
// else {
//
// }
}
}
}

return -1;
}

}

最佳答案

您正在尝试在类构造函数中初始化 res,这实际上不是静态。它仅在您创建该类的新实例时运行。无论如何,您实际上也没有在该构造函数中设置 public static 字段,因为您将在类构造函数中设置的 res 声明为其自己的局部变量,而该变量不是在该方法之外可见。

要初始化静态字段的值,您可以在其声明语句中设置它们:

public static int[][] res = {{1, 2, 3},
{4, 5, 6}};

或者,特别是如果您想要进行额外的处理,您可以使用 static { } 初始化 block :

static {
res = {{1, 2, 3},
{4, 5, 6}};
}

关于尝试在 java static 中打印矩阵值时出现 java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com