0

在 Bukkit 的 API 中,当我尝试调用它们时,有两个函数显示为模棱两可

int getMaxHealth()
double getMaxHealth()

我不知道如何向编译器指定我要调用的函数。而不是直接比较like

if (getMaxHealth() < 40d) { /* Code */ }

我尝试“直接”分配变量

double health = getMaxHealth();

然而,这两种情况都会导致 IntelliJ 抱怨这是一种模棱两可的方法。我怎样才能解决这个问题?

4

4 回答 4

1

重载的方法由它们的参数列表决定。从编译器的角度来看,更改返回类型不会更改方法的签名。所以 Java 的编译器抱怨重新定义了不允许的相同方法,它与 IntelliJ 或 Eclipse 无关。

于 2013-08-29T08:13:25.340 回答
1

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

于 2013-08-29T08:18:30.880 回答
1

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

于 2013-08-29T08:09:11.097 回答
0

我不认为你能解决这个问题。

如果我使用 Eclipse 编写代码作为您的代码:

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

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

于 2013-08-29T07:46:19.050 回答