Java私有布尔函数在返回时请求返回

Java私有布尔函数在返回时请求返回,java,boolean,Java,Boolean,我的java代码中出现了一个奇怪的错误: error: This method must return a result of type boolean 为什么这个公共布尔值在我添加return true和return false时给出这个错误 我的代码: public void render(float delta) { .................... .... Other code .... .................... if (h

我的java代码中出现了一个奇怪的错误:

error: This method must return a result of type boolean
为什么这个公共布尔值在我添加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;
    }
}
public void渲染(浮动增量){
....................
……其他代码。。。。
....................
如果(球员){
球的高度(3*屏幕高度);
难度+=0.1;
}
}
私有布尔hasballcolion(玩家){

如果(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidthplayer.getY()&&ball.getY()您在所有路径中都没有返回语句:

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;
}

if(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidthplayer.getY()&&ball.getY()不是您的
hasballcolision
中的所有路径都返回值(您可能是指“碰撞”)


在嵌套的
if
语句中,没有
else
语句。

为了避免在所有路径中泄漏。始终首先定义“返回值”

private boolean hasballcolion(播放器){
布尔RTN值=假;

如果(ball.getX()+8*screenwidth>player.getX()-40*screenwidth&&ball.getX()+8*screenwidthplayer.getY()&&ball.getY(),因为如果第一个条件为true,第二个条件为false,则您的方法不会返回任何内容。谢谢!解决了我的问题:-)
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;}