这是一个nullpointerexception?

var*_*tis 0 java arraylist

我真的很困惑:我只是想把每个对象的名字添加ArrayList到另一个对象中ArrayList.

for (int i = 0; i < availableParts.size(); i++) {
    for (int j = 0; j < namesOfIngredients.size(); j++){
         if (availableParts.get(i).getName() != namesOfParts.get(j)){
             namesOfParts.add(availableParts.get(i).getName());
         }
    }//middle if statement makes sure there are no repeats
}
Run Code Online (Sandbox Code Playgroud)

编辑:我意识到namesOfIngredients为null.但是,我需要它来启动null - 这就是我复制名称的方式.这可不是这样做的吗?

Xav*_*ica 8

确保这一点

  1. 两个列表availableParts和namesOfIngredients不null
  2. 您要向(namesOfParts)添加元素的列表已使用构造函数正确初始化(不是null).
  3. 这些列表中的所有元素都不是 null

并记住字符串比较完成String.equals().检查==两个String对象上的equality()只有在它们是同一个实例时才返回true.

作为旁注,您可以考虑使用List.contains()以查明某个部分的名称是否在namesOfIngredients列表中.也许,这可能是一个错字,但你应该在那个平等检查中检查一个IndexOutOfBoundsExceptionat namesOfParts.get(j).