1、适用于多种数据类型执行相同的代码

private static int add(int a, int b) {

System.out.println(a + "+" + b + "=" + (a + b));

return a + b;

private static float add(float a, float b) {

System.out.println(a + "+" + b + "=" + (a + b));

return a + b;

private static double add(double a, double b) {

System.out.println(a + "+" + b + "=" + (a + b));

return a + b;

如果没有泛型,要实现不同类型的加法,每种类型都需要重载一个add方法;通过泛型,我们可以复用为一个方法:

2、泛型中的类型在使用时指定,不需要强制类型转换类型安全编译器检查类型

看下这个例子:

List list = new ArrayList();

list.add("xxString");

list.add(100d);

list.add(new Person());

我们在使用上述list中,list中的元素都是Object类型(无法约束其中的类型),所以在取出集合元素时需要人为的强制类型转化到具体的目标类型,且很容易出现异常。

java.lang.ClassCastException

引入泛型,它将提供类型的约束,提供编译前的检查:

List

list = new ArrayList

// list中只能放String, 不能放其它类型的元素

小结

另外,如果对并发编程或者面试,想要了解更多请持续关注微信公众号:Java面试教程,关注更多有用的面试要点与技巧。

了解更多Java相关资料,请关注微信公众号:Java面试教程

让我们一起,玩转Java面试

打开网易新闻 查看精彩图片