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