![](/img/trans.png)
[英]Can't get method (getTest) to return true boolean method result if input matches a number in my array list
[英]My method can't return boolean
我是Java的新手。
这是我的代码:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly")) return true;
}
else return false;
}
但是编译器给出:
Error: public boolean endsLy(String str) {
This method must return a result of type boolean
可能的问题:if语句结构在理论上可以允许运行到达方法的结尾而无需调用return。
考虑在方法return some_value中添加最后一行; 因此总是返回一个值。
您不在处理(str.length()>=2
的分支,而是!str.substring(str.length()-2).equals("ly")
,从最终return
语句中删除else
:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly")) return true;
}
return false;
}
一个更简单的选择(也不太容易出现您遇到的那种错误)是只有一个return
语句:
public boolean endsLy(String str) {
return str.length()>=2 && str.substring(str.length()-2).equals("ly");
}
或者简单地:
public static boolean endsLy(String str) {
return str.length()>= 2 && str.substring(str.length()-2).equals("ly");
}
您可能还会检查String
是否不为null。
return str != null && str.length()>= 2 && str.substring(str.length()-2).equals("ly");
这里是一个更正:
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly"))
return true;
else
return false;
}
else{
return false;
}
}
此错误意味着在某些情况下该函数可能不返回任何内容。
因此,如果此条件=> if(str.length()>=2)
成立,则代码将输入其中。 现在,如果此条件为false => if(str.substring(str.length()-2)
该函数将没有任何返回值,因此错误提示是明智之举。
这意味着并非该函数中的所有条件都返回布尔值。 当函数没有任何返回值时,可能会发生条件。
避免使用多个错误的return语句,因为只有条件if(str.substring(str.length()-2).equals(“ ly”))的返回值才为true。 以下代码仅供参考。
public boolean endsLy(String str) {
if(str.length()>=2){
if(str.substring(str.length()-2).equals("ly"))
return true;
}
return false;
}
因为如果没有!str.substring(str.length()-2),则不会返回布尔值。 等于(“ ly”)
如果要检查您的链由四个字符组成,而后两个字符是“ ly”,则可以使用以下代码:
public boolean endsLy(String str) {
if (str.length() == 4 && str.endsWith("ly"))
return true;
return false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.