NullPointerException

package petShop;

import java.util.Collections;
import java.util.LinkedList;

//宠物商店
public class shop {
    //储存宠物信息
    private LinkedList pets = new LinkedList();

    //存进信息
    public void add(pet pet) {
        this.pets.add(pet);
//        this.sortlist();
    }

    //删除信息
    public void del(pet pet) {
        this.pets.remove(pet);
//        this.sortlist();
    }

    //查询信息(名字可能相同)
    public LinkedList searchinfo(String keyName) {
        LinkedList result = new LinkedList();
//        将集合转换成数组返回 因为集合保存的是Object
//        真正要的数据需要pet接口的getName方法发返回值
        Object obj[] = this.pets.toArray();//将pets转换成数组 看看数组是怎样的
        for (int i = 0; i < obj.length; i++) {//遍历整个数组查找对应数据
            pet p = (pet)obj[i];//向下转型
            if (p.getName().contains(keyName)){//就是这行出现空指针
                result.add(p);
            }
        }
        return result;
    }
}

在 if (p.getName().contains(keyName))出现空指针异常
Exception in thread "main" java.lang.NullPointerException
at petShop.shop.searchinfo(shop.java:38)
at petShop.shop_testmain.main(shop_testmain.java:42)

我的解答思路和尝试过的方法
我想要达到的结果

img


你这个pets是new出来的,也没有调用add方法赋值,第一个对象肯定是空的

你在报错那行打断点进行调试,既然报空指针异常,就找出哪个是null,再往回推,看是在哪里没有赋值到?

img

获取的name为null