为什么我的 return 语句没有被识别?
Why isn't my return statement being recognized?
它说它必须 return 一个字符串。但它已经是。然后它说它必须有一个 return 语句。但是那里有一个。
public String description() {
String description = "";
if (description != null)
return description;
}
因为如果 description 为 null,则永远不会执行 return 语句。
你的代码必须修改成这样的东西
public String description() {
String description = "";
if (description != null){
return description;
}else{
return null;
}
}
我知道 description 不等于 null 但编译器会抱怨,因为如果永远不会执行 if 块,那么该方法将没有 return 语句,因此您也需要在它之外有一个。
要回答你的问题,你得到错误的原因你必须有一个 return 语句是在条件分支中有 return 语句意味着它有可能不会执行。由于此方法需要 return 类型,因此您必须在 return 值中包含一个 else 条件,以便涵盖所有分支。
由于 Java 执行 "pseudo compilation" 它不知道 "description" 显然在运行时不为空。
我刚刚看到您希望方法在 "description" 为 null 的情况下不执行任何操作。在这种情况下,我建议抛出异常:
@SuppressWarnings("unused")
public String description() throws ValidationException {
String description = "";
if (description == null){
throw new ValidationException("Some Error Message");
}
return description;
}
它说它必须 return 一个字符串。但它已经是。然后它说它必须有一个 return 语句。但是那里有一个。
public String description() {
String description = "";
if (description != null)
return description;
}
因为如果 description 为 null,则永远不会执行 return 语句。 你的代码必须修改成这样的东西
public String description() {
String description = "";
if (description != null){
return description;
}else{
return null;
}
}
我知道 description 不等于 null 但编译器会抱怨,因为如果永远不会执行 if 块,那么该方法将没有 return 语句,因此您也需要在它之外有一个。
要回答你的问题,你得到错误的原因你必须有一个 return 语句是在条件分支中有 return 语句意味着它有可能不会执行。由于此方法需要 return 类型,因此您必须在 return 值中包含一个 else 条件,以便涵盖所有分支。
由于 Java 执行 "pseudo compilation" 它不知道 "description" 显然在运行时不为空。
我刚刚看到您希望方法在 "description" 为 null 的情况下不执行任何操作。在这种情况下,我建议抛出异常:
@SuppressWarnings("unused")
public String description() throws ValidationException {
String description = "";
if (description == null){
throw new ValidationException("Some Error Message");
}
return description;
}