我有一个带有抽象方法的枚举,枚举中的每个案例都实现了这个方法。然而,在每个实现中,变量声明总是相同的,所以我最终会得到很多冗余。
public FSA next(Player targetPlayer, Player bot, double prevDist, double newDist) {
Melee tmp;
double weaponRange = (bot.getHolding().isGun()) ? Double.POSITIVE_INFINITY :
(tmp = (Melee) bot.getHolding()).getRange();
int ammoLeft = (bot.getHolding().isGun()) ? bot.getHolding().getAmmo() : 0;
int botHealth = bot.getHealth();
int enemyHealth = targetPlayer.getHealth();
...
}
减少这种冗余的最佳方法是什么?我最初的想法是创建一个辅助方法private Object[] getInfo(Player target, Player bot)
,该方法返回一个包含所需变量的数组。但对我来说,这似乎不太干净,最好的方法是什么?