我正在编写一个管理库存的程序,例如通过添加、删除和租用物品,所有这些都是通过在面向对象的氛围中使用多个类来实现的。下面是我的实现类(Driver)。
Driver.java
public 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.java
public 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()方法返回为空。
喵喵时光机
相关分类