gpt4 book ai didi

java - 两件事 : Eclipse says "must be static" for EVERYTHING! 和 This method must return a result of type boolean, while it returns true

转载 作者:行者123 更新时间:2023-12-04 17:59:56 29 4
gpt4 key购买 nike

这是我用于测试目的的简单代码。

boolean isMoving(){
if (a == b) {
return true;
} else if (a != b) {
return false;
}
}

我得到错误:

This method must return a result of type boolean

虽然在任何给定时间它都必须返回 true 或 false,并且永远不会返回两者。还,无论我在做什么,Eclipse 都会告诉我

Cannot make a static reference to the non-static field bikeSpeed

对于

void speedUp(){
bikeSpeed++;
}

bikeSpeed

int bikeSpeed = 2;

可能是简单的答案,但有人能帮忙吗?我知道如何使用 boolean 值等,而且从来没有遇到过问题,但最简单的事情 ^^^ 不起作用。

编辑:这是我的加速:

void speedUp(){
bikeSpeed++;
}

这是我的用法:

    System.out.println("Simple if && if-then-else testing.");
if (isMoving == true) {
System.err.println("You're already moving fast, no need to speed up!");
} else {
speedUp();
System.out.println("Time to speed up!");
}

再次编辑:isMoving 声明等现在没问题,但是行 如果(isMoving == 真){给出错误:isMoving 无法解析为变量。如果我将它切换到那个,isMoving() 也是如此。最后一个错误是

加速();

给出:无法从 HelloWorld 类型对非静态方法 speedUp() 进行静态引用

上次编辑:我讨厌这个修复,因为它对我来说似乎不正确,但 eclipse 似乎认为使每个单一变量静态修复它(它确实如此),即使它不是静态使用的。

最佳答案

boolean isMoving(){
if (a == b) {
return true;
} else if (a != b) {
return false;
}
}

这里的编译器没有检测到这两个分支中的一个必须被命中,因此它认为存在一种可能的状态,您可以在不指定返回的情况下到达方法的末尾值(value)。您可以使用 else 而不是 else if 或者只是 return a == b

这不仅仅是编译器的缺陷;您可能会遇到这样一种情况,其中另一个线程正在后台更改 ab 的值,并且根据时间的不同,这两种情况在评估时都可能为假.

关于java - 两件事 : Eclipse says "must be static" for EVERYTHING! 和 This method must return a result of type boolean, while it returns true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959496/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com