java函数返回False或object

时间:2019-06-22 00:05:56

标签: java python recursion types

我正在研究在回溯场景中将递归调用的函数。该函数正常工作并返回工作列表,或者该函数失败并返回false。在python中,我可以这样写:

def myfunc(input):
    # logic and logic
    if fails:
        return False
    return alist

在Java中,函数不能返回List或False。我认为我可以使用{?来解决问题,仅出于论证的目的,我知道我要返回的内容):

public List<?> myfunc(someType input){
    // logic and logic
    return res
    // empty or special result instead of False.
}

但是还有更优雅的方法吗?也许try catch?我在Java中很新,在这种情况下想知道标准。谢谢。

2 个答案:

答案 0 :(得分:2)

有几种选择:

使用java.util.Optional

public Optional<List> myfunc(someType input){
    // logic and logic
    if (fail) return Optional.empty();
    else return Optional.of(res);
}

返回null

public List myfunc(someType input){
    // logic and logic
    if (fail) return null;
    else return res;
}

抛出异常

public List myfunc(someType input){
    // logic and logic
    if (fail) throw new RuntimeException("What an interesting case!");
    else return res;
}

PS。我建议选择“可选”或“例外”。

答案 1 :(得分:1)

如果失败,您可以返回一个空列表。

 public static ArrayList<String> GetList()
 {
     return null;
 }