我有两种非常相似的方法,我想将它们合并(借助泛型)。但是,它们具有不同的返回类型。我能做什么?

    public static <A, B> A veggie(MyList <Box<A, B>> b, int j) {

        A veggieA = b.head.first;
        return veggieA;
    }

    public static <A, B> B veggie2(MyList <Box<A, B>> b, int j) {

        B veggieB = b.head.second;
        return veggieB;
    }

最佳答案

在Java 7中,您无法仅通过返回类型来区分。Java6有一个错误,该错误使您可以执行此操作,但我不建议您使用它。

这意味着您不能不进行返回类型Object或进行未经检查的强制转换而合并它们,这不是一个好主意。

在您的示例中,我将使方法名称不同,因此很明显,您将获得第一个或第二个。

关于java - 我的Java方法中如何有两种不同的返回类型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14257180/

10-10 08:14