我的方法不能返回布尔值

0 java

我是java的新手.

这是我的代码:

public boolean endsLy(String str) {
  if(str.length()>=2){
    if(str.substring(str.length()-2).equals("ly")) return true;
  }
  else return false;
}
Run Code Online (Sandbox Code Playgroud)

但编译器给出:

Error:  public boolean endsLy(String str) {          
This method must return a result of type boolean
Run Code Online (Sandbox Code Playgroud)

可能的问题:if语句结构理论上可以允许运行到达方法的末尾而不调用return.
考虑在方法中添加最后一行返回some_value; 所以总是返回一个值.

Mad*_*ist 6

你不是在哪里处理分支(str.length()>=2,但是!str.substring(str.length()-2).equals("ly").else从最终return声明中删除:

public boolean endsLy(String str) {


  if(str.length()>=2){

    if(str.substring(str.length()-2).equals("ly")) return true;

  }
  return false;

}
Run Code Online (Sandbox Code Playgroud)

一个更简单的替代方案(也不太容易出现你遇到的那种错误),只有一个return语句:

public boolean endsLy(String str) {
    return str.length()>=2 && str.substring(str.length()-2).equals("ly");
}
Run Code Online (Sandbox Code Playgroud)