加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java方法返回多个值的最佳做法?

发布时间:2020-12-14 16:46:23 所属栏目:Java 来源:网络整理
导读:参见英文答案 How to return multiple objects from a Java method?23 我需要一个非静态实例方法来返回多个值.为了一个简单的例子,我们假设这些是boolean success和Object obj,但在一般情况下可能会有更多的,它们可能是不相关的.可以想到几种不同的做法: 解
参见英文答案 > How to return multiple objects from a Java method?23
我需要一个非静态实例方法来返回多个值.为了一个简单的例子,我们假设这些是boolean success和Object obj,但在一般情况下可能会有更多的,它们可能是不相关的.可以想到几种不同的做法:

解决方案1

private boolean aMethod(int aParam,Object obj) { ...set obj parameter & return value... }

解决方案2

private Pair<Boolean,Object> aMethod(int aParam) { ...set return pair values... }

解决方案3

private Object obj;
...
private boolean aMethod(int aParam) { ...set obj field & return value... }

解决方案4

private class MethodReturn { // Nested class - could be a separate class instead
    boolean success;
    Object obj;
    // ... Getters and setters omitted for brevity
}

private MethodReturn aMethod(int aParam) { ...set return object values... }

有没有更多的可能我可能错过了?任何人都可以评论每个人的利弊(最理想的情况是在大多数情况下最好使用)?

解决方法

一般来说,根据具体情况,我会去第4层或地图,但如果需要返回多个不相关的值,我认为你有一个严重的设计问题(Check https://en.wikipedia.org/wiki/Single_responsibility_principle)

在具体的情况下(在您的评论之后),我绝对会用第4个建模响应与所有必需的字段.可能您也可以使用ResponseSuccessful和ResponseFailure进行子类型化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读