它说它必须返回一个字符串。但它已经是。然后它说它必须有一个return语句。但那里有一个。
public String description() {
String description = "";
if (description != null)
return description;
}
答案 0 :(得分:3)
因为如果description为null,则永远不会执行该return语句。 你的代码必须修改为像这样的东西
public String description() {
String description = "";
if (description != null){
return description;
}else{
return null;
}
}
我知道描述不等于null但编译器抱怨,因为如果if块永远不会被执行,那么该方法将没有return语句,因此你需要在它之外有一个。
答案 1 :(得分:1)
为了回答你的问题你得到错误的原因你必须有一个return语句是在条件分支中使用return语句意味着它有可能不会执行。由于此方法需要返回类型,因此必须包含else条件才能返回值,以便覆盖所有分支。
由于Java执行“伪编译”,因此它不知道“description”在运行时才显然不为空。
我刚看到你希望方法在“description”为空的情况下什么都不做。在这种情况下,我建议抛出异常:
@SuppressWarnings("unused")
public String description() throws ValidationException {
String description = "";
if (description == null){
throw new ValidationException("Some Error Message");
}
return description;
}