Java 将数组列表的一个实例强制转换为另一个实例

Java 将数组列表的一个实例强制转换为另一个实例,java,class,loops,casting,Java,Class,Loops,Casting,我有两个职业,道具和怪物。怪物是物品的一个子类。我在物品实例集合中循环,查看它们是否与怪物实例匹配,如果匹配,则将物品实例转换为怪物实例。但是,我不确定如何将arraylist中的特定项强制转换为其他类型的类。这是我的代码,任何帮助都会有帮助 public void describe() { int j = 0; while(j < iInstances.size()) { if(iInstan

我有两个职业,道具和怪物。怪物是物品的一个子类。我在物品实例集合中循环,查看它们是否与怪物实例匹配,如果匹配,则将物品实例转换为怪物实例。但是,我不确定如何将arraylist中的特定项强制转换为其他类型的类。这是我的代码,任何帮助都会有帮助

 public void describe()
    {      
        int j = 0;

        while(j < iInstances.size())
        {
            if(iInstances.get(j).equals(mInstances.get(j)))
            {

            }
            iInstances.get(j).describe();
        }
    }
public void description()
{      
int j=0;
而(j
怪物=(怪物)iInstances.get(j)

如果您想检查每个
项目,如果它是类
怪物的实例,您可以很容易地询问它的实例,然后将其转换为
怪物

public void describe() {
    for (Item item : iInstances) {
        if (item instanceof Monster) {
            Monster monster = (Monster) item;
            // now do what you want with your monster
        }
    }
}

确保在循环中递增
j
。如果
iInstances,则cast将失败。get(j)
保留
对象。在强制转换之前添加check(
instanceof
)。但是,如果您将其放入If语句中,这将永远不会发生happen@EugenHalca是的,它应该在if语句中