识别数组列表中的对象

因此,我正在用Java创建一个eshop,但是我面临一个我无法解决的问题。该eshop出售4种商品,因此我们拥有Item类以及Pen,Pencil,Notebook和Paper子类,我将它们全部存储在arraylist中。我想创建一个方法,该方法根据产品的类型将产品分类打印。例如: 笔-> pen1,pen2 铅笔-> Pencil1,pencil2

我遇到的问题是,我不知道如何在arraylist中识别出例如pen1是一个笔对象,并将其打印在笔类别中。我尝试使用迭代器,但是我对它不是很熟悉,因此无法做很多事情。