将项目列表与其类别进行比较

时间:2014-10-26 23:31:24

标签: java

所以我正在制作一个游戏,在这个游戏中玩家有一个包含物品清单的库存,因为有不同种类的物品,我有一个物品,食物项目等等。我想要一个按钮,说吃饭,按钮只是呈现,如果该项目是一个让我说食品,我想知道是否有一种方法来测试,看看它是否是一个食品项目列表,我知道之前已经问过这个问题,但我发现答案有点模糊,我已经尝试过像instanceof这样的明显方法(我之后才意识到它对超类的测试),但没有运气,任何帮助都会受到赞赏。< / p>

3 个答案:

答案 0 :(得分:0)

if(myItem instanceof FoodItem){
// Print eat
}

答案 1 :(得分:0)

可能最好的方法(以及大多数MUD使用的方法)是允许对象提供自己的命令(即可以对该对象采取的操作)。然后,你可以有一个抽象的超类Food对象,它提供了一个'eat'命令,并被所有食物扩展。

在Java中查看CoffeeMUD冒险游戏引擎。

答案 2 :(得分:0)

这里有很多解决方案。

一种解决方案是使用一个名为FoodItem的抽象类,然后从中继承。 然后你可以使用

if (item instanceof FoodItem)

如果您希望某件商品属于多个论坛,请改用界面

另一个解决方案是创建一个组的枚举。 然后每个对象都可以使用getter方法声明它的类型。

public MyEnum getGroup();