我有一个客户类,我无法改变.
List<Integer> list1= Arrays.asList(1,2,3);
System.out.println("Total sum is:"+sum(list1));
printlist(list1);
List<Double> list2=Arrays.asList(1.0,2.0,3.0);
System.out.println("Total sum is:"+sum(list2));
printlist(list2);
Run Code Online (Sandbox Code Playgroud)
我在这里有业务逻辑
private static Object sum(List<? extends Number> list) {
double sum = 0;
for (Number i: list) {
sum+=i.doubleValue();
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
所以我想返回6表示整数,6.0表示双精度数.我怎样才能做到这一点?我想根据类型将类型转换为int或double,但由于类型擦除,所有信息都会丢失.有人能帮我吗?