Java, OOP, and instanceof

So I’m taking an OOP class right now and we’re working on an RPG. I’ve got a partial class hierarchy as follows:

Entity (a character)
Item -> InteractiveItem, EquippableItem, Obstacle

Now in some situations we’ve got a bunch of items in a single list, but this list contains InteractiveItems and EquippableItems. When an entity steps into a tile that has EquippableItems, we need the entity to be able to get the EquippableItems…problem is - we don’t know which are Equippable and which are Interactive.

So this leads me to the question - from an OOP perspective, is instanceof an appropriate utility to use in this situation?

To me instanceof feels like a hack, but I can’t seem to find any other way around this problem. We could separate the items into multiple lists where only a single type of item exists per list - but then this hurts our polymorphism…because now we might as well just make EquippableItem its own standalone type, and InteractiveItem as another stand alone type because we’re no longer making use of their common ancestor (Item).

I’ve tried searching all over the internet to find any OOP principles that deal with this problem, but so far I have not been able to turn up anything. So if you happen to know that instanceof is appropriate here, or you know where I can find an OOP article on how to design for this issue, then please let me know.

Thanks.