Java接受任何子类型作为参数

时间:2013-05-23 21:43:58

标签: java generics types

我有一个java方法,可以使用Integer或Long的参数正确工作。

有没有办法使用泛型来获得一个接受任何一种类型参数的方法?

类似的东西:

public <? extends Number> calculateOutput (<? extends Number> inputNumber) {
    return inputNumber + 1;
}

1 个答案:

答案 0 :(得分:2)

您可以通过宣布T延长Number来近距离接触。

public <T extends Number> T calculateOutput (T inputNumber) {

但这将允许任何Number,甚至FloatBigInteger

此外,您将无法使用+,因为此处的自动装箱功能不适用于通用参数。您必须单独测试这些案例(LongInteger),但这样做会使首次使用此方法失败。