我有一个我在下面写的方法。它使用了大量的 instanceof 逻辑,但至少我没有相同方法的 4 个重载版本。以下方法会出现什么问题?为什么重载方法比使用 instanceof 更受欢迎?
public static <T extends Number> Number SumVector(List<? extends Number> vector){
if (vector.get(0) instanceof Integer){
Integer retVal = 0;
for (Number val : vector){
retVal = retVal+ ((Integer) val).intValue();
}
return retVal;
}
if (vector.get(0) instanceof Double){
Double retVal = (double) 0;
for (Number val : vector){
retVal = retVal+ ((Double) val).doubleValue();
}
return retVal;
}
if (vector.get(0) instanceof Float){
Float retVal = (float) 0.0;
for (Number val : vector){
retVal = retVal+ ((Float) val).floatValue();
}
return retVal;
}
return null;
}