在Bukkit的API中,当我尝试调用它们时,有两个函数显示为不明确的
int getMaxHealth()
double getMaxHealth()
我无法弄清楚如何向编译器指定我想要调用的函数。而不是像
那样直接比较if (getMaxHealth() < 40d) { /* Code */ }
我尝试“直接”分配变量
double health = getMaxHealth();
然而,两种情况都导致IntelliJ抱怨它是一种模糊的方法。我该如何解决这个问题?
答案 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;}
它甚至无法编译。两种方法都标记为重复。