java泛化类的ArrayList之间的搜索方法
我有四个类Book Disk Paper Magazine
,它们都是从另一个类Items
派生的,它们都有一个String barcode
字段
在另一个类foo
中,我有ArrayList<Book> books; ArrayList<Disk> disks; ArrayList<Paper> papers; ArrayList<Magazine> magazines;
,我想为其中每一个实现一个getByBarcode(String barcode)
方法,该方法将在arraylist中查找带有该条形码的项。如果它是一本书,它必须查看图书清单等
我可以避免做四个不同的吗?我的意思是避免做一个getBookByBarcode(String barcode)
必须在图书列表中查找的getDiskByBarcode(String barcode)
必须在磁盘列表中查找的等等
并且有一个类似public Object getByBarcode(String barcode,type)
的泛型。如何以面向对象的方式很好地实现这一点
# 1 楼答案
听起来可能有点黑客味,但你可以像其他用户建议的那样打电话给他们
那么,把这称为畜生般的混乱,你可以做一些像
# 2 楼答案
基本上每本书、杂志、磁盘和;纸是一种物品。因此,您应该有一个名为Item的父类,而不是它的复数形式。每个基类都应该分类为一个单一的实体
然后,您应该创建书籍、杂志、磁盘等对象;纸张由于所有这些对象都分类为一个项,因此创建一个类型为Item的数组列表,并将这些对象添加到该列表中
这样,您就有了一个项目列表,其中包含书籍、杂志、磁盘和;论文然后,您可以在此列表中查找带有条形码的项目,并获取项目的类型
源代码:
项目。java
这本书。java/Disk。java/杂志。java/Paper。java
讲师。java(包含主函数的类)
输出:
我希望这有助于更好地理解这个概念/问题