Java 私有布尔值要求 return 而 return 在那里
Java private boolean asking for return while return is there
我的 java 代码中出现奇怪的错误:
error: This method must return a result of type boolean
为什么这个 public 布尔值在我添加 return true 和 return false 时给出这个错误?
我的代码:
public void render(float delta) {
....................
.... Other code ....
....................
if (hasBallCollision(player)){
ball.setZy(3 * screenheight);
difficulty += 0.1;
}
}
private boolean hasBallColission(Player player){
if(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth){
if(ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight){
return true;
}
}else{
return false;
}
}
感谢reading/helping!
您没有在所有路径中都有 return 语句:
if (ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth) {
if (ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight) {
return true;
}
// missing return statement here
} else {
return false;
}
并非所有路径都在您的 hasBallColission
(您可能是指 "collision")return 一个值。
在您嵌套的 if
语句中,没有 else
语句。
为了避免所有路径泄漏。始终首先定义您的 "return value"。
private boolean hasBallColission(Player player){
boolean rtnValue = false;
if(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth){
if(ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight){
rtnValue = true;
}
}
return rtnValue;}
我的 java 代码中出现奇怪的错误:
error: This method must return a result of type boolean
为什么这个 public 布尔值在我添加 return true 和 return false 时给出这个错误?
我的代码:
public void render(float delta) {
....................
.... Other code ....
....................
if (hasBallCollision(player)){
ball.setZy(3 * screenheight);
difficulty += 0.1;
}
}
private boolean hasBallColission(Player player){
if(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth){
if(ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight){
return true;
}
}else{
return false;
}
}
感谢reading/helping!
您没有在所有路径中都有 return 语句:
if (ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth) {
if (ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight) {
return true;
}
// missing return statement here
} else {
return false;
}
并非所有路径都在您的 hasBallColission
(您可能是指 "collision")return 一个值。
在您嵌套的 if
语句中,没有 else
语句。
为了避免所有路径泄漏。始终首先定义您的 "return value"。
private boolean hasBallColission(Player player){
boolean rtnValue = false;
if(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidth<player.getX()+40*screenwidth){
if(ball.getY()>player.getY()&&ball.getY()<player.getY()+16*screenheight){
rtnValue = true;
}
}
return rtnValue;}