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 T和total can't be assigned to zero.
我怎样才能做到这一点?
谢谢
Mar*_*ers 19
有一些方法你可以一起破解这个,但老实说,仿制药根本不是去这里的方式.为每个具体的原始包装类型构建一个方法并分别实现它们.使它成为通用的将是一件令人头疼的问题; 算术运算一般不会发生.
通过使它成为通用的,你也没有真正获得任何东西.它是如此简单和常量的代码,您不必担心代码重复,因为它不会改变.人们不会将自己的数字类型传递给您的代码; 它适用的类型域已经很好地定义和有限.