JAVA泛型
历史:JAVA泛型最开始出现在JDK5中。
作用:其本质是类型参数化,为了让Java程序能处理不同类型的参数。使用泛型就是类型安全?
例子联想:
写一个方法,使用这个方法可以打印各种数组。
我们可以使用泛型,方法中的参数使用泛型元素,用来接收不同类型的实参。打印接收到的实参。
public static void main(String args[]){
String[] s = {"nihao","hello","world"};
printArray(s);
Integer[] i = {1,2,3};
printArray(i);
Character[] c = {'a','b','c'};
printArray(c);
}
public static <E> void printArray(E[] arraylist){
for(E e : arraylist){
System.out.println(e);
}
}
泛型方法
定义:在方法返回值前面申明泛型参数,之后可以用在方法返回值中,方法参数中,方法体中。总之,你可以把它看作一个已知的类。这里提一点注意,防范只能参数化引用型参数,不能是基本参数类型。
Demo就不写了,用例子联想吧
泛型类
和泛型类的区别:泛型类和泛型方法的用处差不多,泛型方法中的参数只在方法中有效,使用泛型类可以在类中都有效。
定义:泛型参数的申明放在类名后面,和泛型方法一样使用<>包裹。申明后就像是这个类在说,我之后会使用到一个参数化的类,大家可以使用,用来定义成员变量、静态变量、返回值类型、方法参数、局部变量。
Demo:
public class Test{
public static void main(String args[]){
fanxing<String> boy = new fanxing<String>();
boy.setepic("love");
System.out.println(boy.epic);
}
}
class fanxing <E>{
public E epic;
public E setepic(E game){
E epicgirlfriend = game;
epic = game;
return epic;
}
}
例如Map<K,V>、ArrayList