首页 > 解决方案 > 在方法中返回多个类型的最符合 Java 的方法是什么?

问题描述

假设我有一个 Java 方法,我需要根据条件返回不同的类型。为简单起见,我将提供一个非常虚拟的示例:

public (something goes here) processSomething() {
    if (condition1) {
        return true;
    } else if (condition2) {
        return 5;
    } else {
        return new ComplexObject();
    }
}

如您所见,我没有定义返回类型以避免对解决方案的假设。我知道有诸如泛型类型之类的选项,Any并且Object(我可能误解了其中一些可能不适用于我的用例的选项)。

其目的是使用上述方法的返回值来调用具有使用 Java 反射 API (invoke) 的预定义参数(例如 和 )的其他int方法booleanString

我想知道 Java 专家最推荐的是什么。

标签: java

解决方案


创建一个“结果持有者”类。像这样的东西:

class OperationResult {
  boolean flag;
  ComplexObject info;
}

此外,在技术上可以对各种结果使用(检查)异常,但这种模式不太可能是一个好的选择。


推荐阅读