奇怪的抽象行为 - 布尔值()返回false

时间:2015-03-26 05:44:39

标签: groovy

我试图在我的应用程序上执行一些基本逻辑,检查实体位置以调用进入/退出方法但是我得到了一些奇怪的结果:

Contains false - Compare true

以下方法打印结果

@Override
public void checkLocation(Player player) {
    System.out.println("Contains " + contains(player) + " - Compare ${inLocation(player.position)}");
}

包含布尔值:

@Override
public boolean contains(Player player) {
     return inLocation(player.position);
}

我不明白包含(播放器)如何返回false,而inLocation(player.position)返回true?真的很重视我对事情如何运作的理解。

代码是groovy。 ${var}只是常规的连接方式。

1 个答案:

答案 0 :(得分:0)

根据代码的上下文,可能会在此代码所在的类/控制器/服务上调用groovy的contains方法,而不是调用已定义的contains方法。也许是暗中调用

this.contains(player)

尝试将方法名称更改为“hasPlayer()”或在contains方法中添加println以确保调用代码。