1

我有一个 java 方法,它可以与 Integer 或 Long 的参数一起正常工作。

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

就像是:

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

1 回答 1

2

您可以通过声明 a Tto extend 来非常接近Number

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

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

此外,您将无法使用+,因为自动拆箱在此处无法使用通用参数。您必须单独测试这些案例(Long, Integer),但这会破坏首先使用此方法的通用性。

于 2013-05-23T21:49:20.690 回答