因此,我正在用Java创建一个eshop,但是我面临一个我无法解决的问题。该eshop出售4种商品,因此我们拥有Item类以及Pen,Pencil,Notebook和Paper子类,我将它们全部存储在arraylist中。我想创建一个方法,该方法根据产品的类型将产品分类打印。例如: 笔-> pen1,pen2 铅笔-> Pencil1,pencil2
我遇到的问题是,我不知道如何在arraylist中识别出例如pen1是一个笔对象,并将其打印在笔类别中。我尝试使用迭代器,但是我对它不是很熟悉,因此无法做很多事情。
强制性Java Streams解决方案:
这将按类别对列表进行分组,从而生成一个映射,其中每个类别为键,而该类别的对象列表为值
getClass()
检索实例的类。
instanceof
myItem instanceof Item
checks if the variablemyItem
is an instance of theItem
class, that means either anItem
, or one of its subclasses, for examplePencil
. The comparison, of course, returns aboolean
.