gpt4 book ai didi

java - 二维数组 - java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-12-02 10:21:31 26 4
gpt4 key购买 nike

我目前正在编写一个 RESTFUL 网络服务程序。我期望收到一个或两个输入的输入(取决于我的 returnValue 结果)。我很难将值分配给二维数组。

我已经尝试了上面的代码,我遇到了:java.lang.NullPointerException

关于如何分配MethodName的任何想法和MethodStatus变成二维数组?

MethodSet 的预期输出应该是([1][1]),([2][1]) .

AdaptiveAuthService.adaptiveAuth每次出现新的二维数组时都应该调用。

Web服务输入:

{"methodSet": [{"num":1,"methodName": 1, "methodStatus": "1"}, 
{"num":2,"methodName": 2, "methodStatus": "1"}]}

自适应RESTFUL:

@POST
@Path("/post")
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.APPLICATION_JSON)
public int adaptiveAuth(String objDataLog) throws SQLException{

JSONObject obj = new JSONObject(objDataLog);

JSONArray arr=(JSONArray)obj.get("methodSet");

//to get how many method been send to TE
if (arr != null) {
JSONObject objMethod;
String Num;
for (Object o : arr) {
objMethod = (JSONObject) o;
Num = String.valueOf(objMethod.get("num"));
resultNum = Integer.parseInt(Num);
logWriter("resultNum: "+resultNum);
}
}

//declaration of 2 dimension array
MethodClass[][] methodSet = new MethodClass[resultNum][resultNum];

//to get value for MethodName, MethodStatus
if (arr != null) {
JSONObject objMethod1;
String MethodName, MethodStatus;
for (Object o1 : arr) {
objMethod1 = (JSONObject) o1;
MethodName = String.valueOf(objMethod1.get("methodName"));
MethodStatus = String.valueOf(objMethod1.get("methodStatus"));

int resultMethodName = Integer.parseInt(MethodName);
int resultMethodStatus = Integer.parseInt(MethodStatus);
logWriter("MethodName: "+resultMethodName);
logWriter("MethodStatus: "+resultMethodStatus);

for (int i = 1; i < methodSet.length; i++){
for (int j = 1; j < methodSet[i].length; j++) {
methodSet[i][j] = new MethodClass();
methodSet[i][j].setmethodName(resultMethodName);
methodSet[i][j].setmethodStatus(resultMethodStatus);
}
//calling function to do calculation
returnValue = AdaptiveAuthService.adaptiveAuth(methodSet);//returning null pointer exception
}
}
}

AdaptiveAuthService 代码:

public static int adaptiveAuth(MethodClass[][] methodSet)throws SQLException {

int aAC = methodSet[0].length;
int authMethod = methodSet[0][aAC - 1].getmethodName(); //returning nullpointer exception

如果您有任何想法或方法来解决问题,请提出建议并告诉我。

最佳答案

来自您的代码

for (int i = 1; i < methodSet.length; i++){
for (int j = 1; j < methodSet[i].length; j++) {
methodSet[i][j] = new MethodClass();

您将 ij 从 1 初始化,这意味着 methodSet[0] 将不会被初始化(null ),并且您尝试从 null 值中获取 getmethodName() ,那么您将得到 NullPointerException

关于java - 二维数组 - java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54319375/

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