参见英文答案 >
How to return multiple objects from a Java method?23
我需要一个非静态实例方法来返回多个值.为了一个简单的例子,我们假设这些是boolean success和Object obj,但在一般情况下可能会有更多的,它们可能是不相关的.可以想到几种不同的做法:
我需要一个非静态实例方法来返回多个值.为了一个简单的例子,我们假设这些是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进行子类型化.
原文地址:https://www.jb51.cc/java/124319.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。