为了账号安全,请及时绑定邮箱和手机立即绑定

尝试从其他类访问 ArrayList 时出现 NullPointerException

尝试从其他类访问 ArrayList 时出现 NullPointerException

饮歌长啸 2023-08-16 10:49:59
我正在编写一个管理库存的程序,例如通过添加、删除和租用物品,所有这些都是通过在面向对象的氛围中使用多个类来实现的。下面是我的实现类(Driver)。Driver.javapublic class Driver {   public static void main(String[] args)   {      ABCRentals abc = new ABCRentals();      Furniture item1 = new Furniture();      boolean flag = abc.add(item1);      List<Integer> idList = abc.getIDList();      String[] itemTypes = abc.getItemArray();      System.out.println("Item ID Numbers: " + Arrays.toString(idList.toArray()));      System.out.println("Item Types: " + Arrays.toString(itemTypes));   }}这段代码工作得很好,因为它能够通过getIDList()和getItemArray()方法检索和打印 ArrayList 和 String 数组,这些方法在ABCRentals类中指定:ABCRentals.javapublic class ABCRentals implements Inventory{   private List<Integer> idNumbers = new ArrayList<Integer>();   private List<Item> items = new ArrayList<Item>();   private List<Integer> rentedItems = new ArrayList<Integer>();   private String[] itemTypes2;   public ABCRentals() { }   public List<Integer> getIDList() {      return idNumbers;   }   public List<Item> getItemList() {      return items;    }   public String[] getItemArray() {      return itemTypes2;   }   public List<Integer> getRentedList() {      return rentedItems;   }   public boolean add(Item item)   {      if (items.size() >= 300)          return false;      else      {         idNumbers.add(idNumbers.size() + 1);         items.add(item);         Object[] itemTypes = items.toArray();         itemTypes2 = new String[itemTypes.length];         int dvd = 0, f = 0, tv = 0;         for (int index = 0; index < itemTypes.length; index++)         {            String indexValue = itemTypes[index].getClass().toString().substring(6);            if (indexValue.equals("DVDPlayer"))            {              dvd++;              itemTypes2[index] = indexValue + " #" + Integer.toString(dvd);            }因此,当我尝试从类中访问 ArrayList 和数组的内容时Driver,它可以工作。但是,当我尝试从任何其他类访问 ArrayList 或数组时,无论是DVDPlayer、Furniture或Television类,我都会收到NullPointerException错误,因此换句话说,ArrayList 和数组不会使用类中指定的值进行更新/Driver填充与上面不同的是,该add()方法返回为空。
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

您在 main 中调用 add() 方法,该方法实例化 itemTypes2 数组。在访问 Furniture 类中的 itemTypes2 之前,您不会调用 add() ,因此它为 null。



查看完整回答
反对 回复 2023-08-16
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信