Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 非常奇怪的空指针问题_Java_Jsp_Variables_Pointers_Null - Fatal编程技术网

Java 非常奇怪的空指针问题

Java 非常奇怪的空指针问题,java,jsp,variables,pointers,null,Java,Jsp,Variables,Pointers,Null,希望有人能帮我解决一个非常奇怪的问题 在下面的代码中,我试图打印出请求中传递的号码。它是一个名为number的字符串 String number = request.getParameter("number"); ^串 out.print(number); ^印刷号码 目前,这是失败的空指针异常,但当我打印出number.length时,它会打印长度 堆栈跟踪还表示这一行上出现了空指针 JSONObject JSONOBJ = new JSONObject(APIResponse.Respo

希望有人能帮我解决一个非常奇怪的问题

在下面的代码中,我试图打印出请求中传递的号码。它是一个名为number的字符串

String number = request.getParameter("number");
^串

out.print(number);
^印刷号码

目前,这是失败的空指针异常,但当我打印出number.length时,它会打印长度

堆栈跟踪还表示这一行上出现了空指针

JSONObject JSONOBJ = new JSONObject(APIResponse.Response);
有人能解释发生了什么事吗

谢谢

<%
if (request.getParameter("number") != null)
{

    String number = request.getParameter("number");
    if (number.matches("^[0-9]+"))
    {
%>

        <%
            ApiRequest APIRequest = new ApiRequest(
                            "/broadband/availability/" + number, "GET", null);

                    /*
                    COULD ALSO PASS POSTCODE BUT ONLY USING CLI FOR NOW
                     */

                    ApiClient APIClient = new ApiClient();
                    api.ApiResponse APIResponse = APIClient.send(APIRequest);

                    JSONObject JSONOBJ = new JSONObject(APIResponse.Response);

                    JSONArray JSONARR = JSONOBJ.getJSONArray("products");
        %>

                Services for 
                <%
                out.print(number);
            %>

如果你真的在这条线上得到了NPE:

  JSONObject JSONOBJ = new JSONObject(APIResponse.Response);
那么唯一的解释就是这个反应很恶心!!!是空的。这意味着

  APIClient.send(APIRequest);
恶心两次!!正在返回null。如果不查看这些APIxxxx类的源代码和/或javadocs,就无法确定是什么原因造成的

这是唯一的证据,你提供了足够的特异性,以准确的诊断


您还提到在打印数字时获得NPE。但我怀疑事实并非如此。首先,如果NPE发生在您所说的发生在的行上,那么它在该点上不打印数字。

输出了什么以及设置在哪里?另外,您是否使用了一些标签中没有提到的框架?我不知道那些抱歉的人应该提到什么这是一个JSP。外部是HTML。浏览器坏了。你试过修剪绳子吗?字符串编号=request.getParameternumber;数字=数字!=无效的数字:0;您确定您的APIResponse不是null吗?你能检查一下吗?张贴堆栈跟踪,并显示相关的行号。从你的描述来看,这些NPE的确切来源还很不清楚。