【发布时间】:2018-10-26 04:52:51
【问题描述】:
那里!我正在做我的学业,我是一名 Java 初学者。我正在编写一个程序,它有一个名为 petshop 的 ArrayList。宠物店由对象居民组成。
对象居民有姓名、生日、邮政编码和宠物(居民拥有的宠物)等字段。以下是对象 Residents 的示例: 姓名简 1991 年 11 月 11 日生日 邮政编码 2222 宠物狗猫猪
我正在写一个方法来找出唱片封面有多少种不同的宠物。我在想的是将petshop中的宠物记录添加到一个新的字符串数组宠物中,并清除重复的值。 这是我的代码:
public void addpets() {
Set<String>cleanpets = new HashSet<>();
for(int i=0; i<petshop.size();i++)
{
String[]pet = petshop.get(i).getPetown().split("");
for(int j=0; j<pet.length; j++)
{
pets.add(pet[j]);
}
}
cleanpets.addAll(pets);
pets.clear();
pets.addAll(cleanpets);
}
Pets 是我在同一个类中初始化的新 String ArrayList。当我运行整个程序时,控制台总是在线程“main” java.lang.NullPointerException 中显示异常,并带有以下行:pet = petshop.get(i).getPetown().split("");
我不明白哪里错了。或者有其他方法吗?
我现在知道问题所在了。因为如果居民只有一只宠物,则 String[]pet = petshop.get(i).getPetown().split("");不会工作。
【问题讨论】:
-
petshop是否在此方法之外定义?通常NullPointerException在某些内容未定义并且您尝试访问它时会被抛出。在这种情况下,可能是因为您尝试引用变量petshop,但它没有作为参数传递或在此方法范围内的任何位置创建。 -
嗨,泰勒,我已经检查过了,宠物店是在这个类中定义的。
标签: arrays arraylist nullpointerexception hashset