IntelliJ中的模糊方法

时间:2013-08-29 07:34:35

标签: java intellij-idea bukkit

在Bukkit的API中,当我尝试调用它们时,有两个函数显示为不明确的

int getMaxHealth()
double getMaxHealth()

我无法弄清楚如何向编译器指定我想要调用的函数。而不是像

那样直接比较
if (getMaxHealth() < 40d) { /* Code */ }

我尝试“直接”分配变量

double health = getMaxHealth();

然而,两种情况都导致IntelliJ抱怨它是一种模糊的方法。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

IntelliJ通常可以帮助您解决问题。将光标放在标记错误的代码上,然后按Alt + Enter(如果您有Windows版本,则不知道其他操作系统上的组合键......)。 IDE可能会向您建议解决方案。

答案 1 :(得分:1)

使用参数列表确定重载方法。更改返回类型不会从编译器的视点更改方法的签名。所以Java的编译器抱怨重新定义不允许的相同方法,它与IntelliJ或Eclipse无关。

答案 2 :(得分:1)

显然,即使出现错误,我仍然可以编译程序。所以我想这可以解决问题!

答案 3 :(得分:0)

我认为你无法解决这个问题。

如果我使用Eclipse编写代码,请使用代码:

int getMaxHealth() {return 1;}
double getMaxHealth() {return 1d;}

它甚至无法编译。两种方法都标记为重复。