我正在尝试从该类中调用一个方法,该类Weapon
是Item
. 从字段中可以看出,我已将该对象声明currentWeapon
为 Item 的对象,并且在setCurrentWeapon
方法中我使用getClass()
方法来检查它Item
是否真的是子类 Weapon。
有没有一种方法可以成功地从Weapon
我的 Item 对象(实际上是 Weapon 类)的类中调用方法?
backpack
是一个包含Item
对象的哈希图。如果我在字段中设置currentWeapon
为 a ,则该对象不会添加到.Weapon
Weapon
backpack
编译失败的方法:(找不到符号 - 方法 getMinDamage())
public int attack(Imperial currentEnemy) {
int damage = Utils.random(currentWeapon.getMinDamage(), currentWeapon.getMaxDamage()+1);
currentEnemy.changeHealth(-damage);
return damage;
}
场:
private Item currentWeapon;
currentWeapon的设置方法:
public boolean setCurrentWeapon(String itemToEquip) {
if(useItem(itemToEquip) == true) {
currentWeapon = backpack.get(itemToEquip.toLowerCase());
if(currentWeapon.getClass() == Weapon.class) {
System.out.println(getNick() + " has equipped " + currentWeapon.getName() + " as current weapon");
equipped = true;
return true;
}
else {
System.out.println(itemToEquip + " is not a weapon");
currentWeapon = null;
return false;
}
}
else System.out.println(itemToEquip + " is not owned by " + getNick());
return false;
}
我希望这个问题不会太令人困惑,请提供有关如何澄清这是否是问题的提示