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

前端之家收集整理的这篇文章主要介绍了Java方法返回多个值的最佳做法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > 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进行子类型化.

猜你在找的Java相关文章