Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 在这种情况下如何处理NullpointerException_Java - Fatal编程技术网

Java 在这种情况下如何处理NullpointerException

Java 在这种情况下如何处理NullpointerException,java,Java,这是servlet中的for循环函数 我有个问题。 数据将从用户界面传递到此 在某些条件下,某些信息(例如符号或边)可能无法传递,然后在这些条件下,我将获得NullPointreException,因为会向其提供null List<Bag> bags = new ArrayList<Bag>(bagdata.length); for (FormBeanData ld : data) { Bag bag = new Bag(); bag.symbol =

这是servlet中的for循环函数

我有个问题。 数据将从用户界面传递到此

在某些条件下,某些信息(例如符号或边)可能无法传递,然后在这些条件下,我将获得NullPointreException,因为会向其提供null

List<Bag> bags = new ArrayList<Bag>(bagdata.length);

for (FormBeanData ld : data) {
    Bag bag = new Bag();
    bag.symbol = ld.getSymbol();
    bag.side = ld.getSide();
    bags.add(bag );
}
List bags=new ArrayList(bagdata.length);
用于(FormBeanda ld:数据){
袋子=新袋子();
bag.symbol=ld.getSymbol();
bag.side=ld.getSide();
袋子。添加(袋子);
}
我们有没有办法处理这种情况


谢谢。

只需检查是否有任何值等于null

List bags = new ArrayList(bagdata.length);
for (FormBeanData ld : data) {
    if(ld!=null && ld.getSymbol()!=null && ld.getSide()!=null) {
        Bag bag = new Bag();
        bag.symbol = ld.getSymbol();
        bag.side = ld.getSide();
        bags.add(Bag);
    }
}

您提交的代码很可能甚至没有编译:
bags.add(Bag)
没有意义。您需要添加
bag
对象(实例),而不是
bag
(类)

在任何情况下,如果要检查引用是否为空,只需检查它:

if (myobject != null) {
    myobject.myfield = ... // myobject is not null
} else {
    // ignore, print an error, do what is required to do
}
您还必须在迭代之前进行检查

if (collection != null) {
  for (Object o : collection) {
  }
}

这不是他可能有异常的地方:如果
ld.getSymbol()
null
bag.symbol=ld.getSymbol
不会生成异常。它将只分配
null
。很可能
数据
为空,但提交的代码版本不正确(请参见add(Bag)),因此很难看到异常发生的位置。如果数据为null,代码也会崩溃。正如@Matteo建议的那样,如果这些对象为null,您可能需要设置一些默认值。如果您可以发布正在执行的代码和实际错误(发生在哪里),这将非常有用。