=====《求求大神帮我优化下啊,我写的太烂了》====
public static void main(String[] args) {
Number[] num1 = {2, 3, 3, 4, 5}; //Integer
Number[] num2 = {1.1, 2.0, 3.0, 4.0, 5.0}; //Double
System.out.println(num1[0].getClass().getTypeName());
System.out.println(new ArraysTest().ArraysSum(num2));
}
public static <T extends Number> T ArraysSum(T[] num) {
System.out.println(num.getClass().getTypeName());
Double sum = 0.0;
for (int i = 0; i < num.length; i++) {
sum += num[i].doubleValue();
}
if (num[0].getClass().getTypeName().equals("java.lang.Integer")){
Integer result = (int)((double)sum);
return (T)result;
}
if (num[0].getClass().getTypeName().equals("java.lang.Double")){
Double result = sum.doubleValue();
return (T)result;
}
return (T)sum;
}
如何结合instanceof 更加智能的判断?