public class MyGenericTest3<T >{
/** 求两个不确定类型的数值相加的泛型方法
* 通过使用泛型 两个数字相加 无论什么类型都可以
* @param t1
* @param t2
* @param <T>
* @author 1279938986@qq.com
*/
public <T extends Number> Double add(T t1,T t2){
double sum=0;
if (t1 instanceof Integer) {
sum=sum+((Integer)t1).intValue();
}else if (t1 instanceof Long) {
sum=sum+((Long)t1).longValue();
}else if (t1 instanceof Short) {
sum=sum+((Short)t1).shortValue();
}
else if (t1 instanceof Float) {
sum=sum+((Float)t1).floatValue();
}
else if (t1 instanceof Double) {
sum=sum+((Double)t1).doubleValue();
}
if (t2 instanceof Integer) {
sum=sum+((Integer)t2).intValue();
}else if (t2 instanceof Long) {
sum=sum+((Long)t1).longValue();
}else if (t2 instanceof Short) {
sum=sum+((Short)t2).shortValue();
}
else if (t2 instanceof Float) {
sum=sum+((Float)t2).floatValue();
}
else if (t2 instanceof Double) {
sum=sum+((Double)t2).doubleValue();
}
System.out.println("sum="+sum);
return sum;
}
public static void main(String[] args) {
MyGenericTest3<Number> my=new MyGenericTest3<>();
my.add(10,2.5f);
System.out.println(my.add(10,2.5f));
}
}