Java:通用方法和数字

Mar*_*aux 16 java generics numbers

我想制作一个通用方法,它可以得到一个List数字的总和.

我在想的是这个:

public static <T extends Number> T sumList(List<T> data)
{
    T total = 0;
    for (T elem : data)
    {
        total += elem;
    }
    return total;
}
Run Code Online (Sandbox Code Playgroud)

但问题是,there is no += operator in Ttotal can't be assigned to zero.

我怎样才能做到这一点?

谢谢

Mar*_*ers 19

有一些方法你可以一起破解这个,但老实说,仿制药根本不是去这里的方式.为每个具体的原始包装类型构建一个方法并分别实现它们.使它成为通用的将是一件令人头疼的问题; 算术运算一般不会发生.

通过使它成为通用的,你也没有真正获得任何东西.它是如此简单和常量的代码,您不必担心代码重复,因为它不会改变.人们不会将自己的数字类型传递给您的代码; 它适用的类型域已经很好地定义和有限.

  • 伤害这是真的,但它是(+ 1) (5认同)