用于多种数据类型执行相同的代码情况,将重复的代码抽取出来
比如:
private int add(int a, int b) {
System.out.println(a + "+" + b + "=" + (a + b));
return a + b;
}
private float add(long a, long b) {
System.out.println(a + "+" + b + "=" + (a + b));
return a + b;
}
private double add(double a, double b) {
System.out.println(a + "+" + b + "=" + (a + b));
return a + b;
}
如果没有泛型,要实现不同类型的加法,每种类型都需要重载一个add方法;通过泛型,我们可以复用为一个方法,这里要注意,泛型中的类型在使用时指定,不需要强制类型转换
private static <T extends Number> double add(T a, T b) {
System.out.println(a + "+" + b + "=" + (a.doubleValue() + b.doubleValue()));
return a.doubleValue() + b.doubleValue();
}