Java空指针异常

Java空指针异常,java,nullpointerexception,Java,Nullpointerexception,我遇到了一个空指针异常问题,但我无法找出问题所在。 以下是我在doPost中的代码: HttpSession session = request.getSession(); session.setAttribute("product", product); url = "/login.jsp"; // create product list and store it in the session String path = getServletContext().getRealPath("/

我遇到了一个空指针异常问题,但我无法找出问题所在。 以下是我在doPost中的代码:

HttpSession session = request.getSession();
session.setAttribute("product", product);
url = "/login.jsp"; 

// create product list and store it in the session
String path = getServletContext().getRealPath("/WEB-INF/products.txt");
ArrayList<Product> products = ProductIO.selectProducts(path);
session.setAttribute("products", products);

// forward request and response objects to specified URL
getServletContext().getRequestDispatcher(url).forward(request, response);

抛出NullPointerException的具体行是什么?因为
arraylistproducts=ProductIO.selectProducts(path)中没有错误


尝试更改
products=newarraylist()
to
ArrayList products=new ArrayList()

引发NullPointerException的特定行是什么?因为
arraylistproducts=ProductIO.selectProducts(path)中没有错误


尝试更改
products=newarraylist()
to
ArrayList products=new ArrayList()

您希望返回
ArrasyList
,并在
ProductIO
类中将其声明为私有变量

删除
私有静态ArrayList products=null
在方法中初始化并构建这个新的,然后返回
ArrayList products=new ArrayList()

编辑: 从上述评论/讨论来看,此答案与问题/议题不再相关


更新 基于提交的另一个答案中的用户讨论

  String priceAsString = t.nextToken();
  double price = 0.0;
 //Check for null
  if(priceAsString  != null && !priceAsString  .isEmpty())
  {
    price =  Double.parseDouble(priceAsString);
  }

您希望返回
ArrasyList
,并在
ProductIO
类中将其声明为私有变量

删除
私有静态ArrayList products=null
在方法中初始化并构建这个新的,然后返回
ArrayList products=new ArrayList()

编辑: 从上述评论/讨论来看,此答案与问题/议题不再相关


更新 基于提交的另一个答案中的用户讨论

  String priceAsString = t.nextToken();
  double price = 0.0;
 //Check for null
  if(priceAsString  != null && !priceAsString  .isEmpty())
  {
    price =  Double.parseDouble(priceAsString);
  }

在您的异常
catch
block中,如果u
return products
而不是null,会发生什么情况?@搜索时,仍然有相同的问题在您的异常
catch
block中,如果u
return products
而不是null,会发生什么情况?@搜索时,仍然有相同的问题raylist products=ProductIO。选择products(路径);是导致异常的行。也可能是我代码的另一部分导致了这种情况?是的@Glitteropia,试着改变我说的…也许你的静态字段在代码的其他部分被设置为null…好的,所以我试过了,它也不起作用,所以我试着注释了整个部分,但它仍然不起作用。我在sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)的java.lang.Double.parseDouble(Double.java:538)的java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)中复制并粘贴了错误在javax.servlet.http.HttpServlet.service(HttpServlet.java:648)的murach.business.ProductManagementServlet.doPost(ProductManagementServlet.java:140)中,ProductManagementServlet第140行发生此错误。您正在将一个
null
字符串传递给Double.valueOf(字符串)。能否编辑您的帖子并向我们显示该类的第140行?ArrayList products=ProductIO.selectProducts(path);是导致异常的行。也可能是我代码的另一部分导致了这种情况?是的@Glitteropia,试着改变我说的…也许你的静态字段在代码的其他部分被设置为null…好的,所以我试过了,它也不起作用,所以我试着注释了整个部分,但它仍然不起作用。我在sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)的java.lang.Double.parseDouble(Double.java:538)的java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)中复制并粘贴了错误在javax.servlet.http.HttpServlet.service(HttpServlet.java:648)的murach.business.ProductManagementServlet.doPost(ProductManagementServlet.java:140)中,ProductManagementServlet第140行发生此错误。您正在将
null
字符串传递给Double.valueOf(String)。能否编辑您的帖子并向我们显示该类的第140行?
  String priceAsString = t.nextToken();
  double price = 0.0;
 //Check for null
  if(priceAsString  != null && !priceAsString  .isEmpty())
  {
    price =  Double.parseDouble(priceAsString);
  }