泛型类和泛型方法有类型参数,想要搞懂什么是泛型,必须先理解什么是类型参数?
看下面这段代码,anInt这个方法接收了一个int类型的参数,形参的名字是num,num就是变量参数。
public class A {
public int anInt(int num){
return num;
}
}
我们再看另一段代码
public class A {
public <T> T anInt(T num){
return num;
}
}
在这一段代码中,引入了一个类型变量T,用尖括号( <> )括起来,放在public修饰符的后面。当我们需要用到这个方法时,就可以指定类型变量的类型。 例如:可以如下调用
String a = new A().<String>anInt("qwer");
也可以这样使用
Integer b = new A().<Integer>anInt(15);
也就是说,以前参数的类型是固定的,我们只能传递一个固定类型的参数;而现在,参数的类型也可以由我们指定,这就是类型参数。
因此,泛型的出现有以下好处:
- 提高了代码的复用性。这点不用多说,从上面的代码就可以看出,原来需要为String和Integer各提供一个方法,使用了泛型后,使用一个方法便足以。
- 增加了程序的安全性。在有泛型类之前,程序员必须使用Object编写适用于多种类型的代码,在具体使用时,需要进行类型转换,如果类型转换出错,就会给程序带来毁灭性打击。而泛型的作用就是在编译时做类型检查,这无疑增加了程序的安全性。
如果你已经看到这里了,可以麻烦点个赞么,笔者在这里先行谢过。