为什么我的退货声明无法被识别?

时间:2015-02-26 03:14:56

标签: java return return-type

它说它必须返回一个字符串。但它已经是。然后它说它必须有一个return语句。但那里有一个。

public String description() {
    String description = "";
    if (description != null)
        return description;
}

2 个答案:

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