分享
三行代码  ›  专栏  ›  技术社区  ›  Rocky Li

返回错误或对象的Java函数

  •  0
  • Rocky Li  · 技术社区  · 4 月前

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

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

    在Java中,函数不能返回列表或false。我想我可以避开这个问题( ? 为了争论,我知道我要返回的是什么):

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

    但有没有更优雅的方式来做到这一点呢?也许 try catch ?我在Java中很新鲜,想知道这个例子中的标准。谢谢。

    2 回复  |  直到 4 月前
        1
  •  2
  •   JClassic    4 月前

    有几种选择:

    使用 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;
    }
    

    另外,我建议您选择其他选项或例外。

        2
  •  1
  •   bgura    4 月前

    失败时可以返回空列表。

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