-1

我有一个带有抽象方法的枚举,枚举中的每个案例都实现了这个方法。然而,在每个实现中,变量声明总是相同的,所以我最终会得到很多冗余。

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),该方法返回一个包含所需变量的数组。但对我来说,这似乎不太干净,最好的方法是什么?

4

1 回答 1

0

使所有变量成为新实用程序类的一部分。在具有初始化函数的基类上提供一个受保护的方法。

于 2019-01-27T13:57:00.000 回答