JAVA泛型
Java泛型是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。
java的泛型是伪泛型,这是因为Java在运行期间,所有的泛型信息都会被擦掉(所以进行反射操作时无法检测到类型错误)
泛型类
pubilic class Generic<T>{
private T key;
public Generic(T key) {
this.key = key;
}
public T getKey(){
return key;
}
}
实例化泛型类:
Generic<Integer>K = new Generic<Integer>(1234)
泛型接口
public interface Generator<T>{
public T method();
}
实现泛型接口,不指定类型:(需要在类名后面声明类型T)
class Generatorcls<T> implements Generator<T>{
public T methond() {
return null;
}
}
实现泛型接口,指定类型:
class Generatorcls implements Generator<String>{
public String methond() {
return "JAVA";
}
}
泛型方法
public static <E> void printArray(E[] inputArray) {
for(E element : inputArray) {
System.out.printf("%s", element)
}
System.out.pritnln();
需要注意:
-
返回值前的用来声明此方法为泛型方法
-
只有声明了的方法才是泛型方法
-
表明该方法将使用泛型类型T,此时才可以在方法中使用泛型类型T。
实现泛型方法:
Integer[] intArray = {1,3,4};
String[] stringArray = {"Hello"};
printArray(intArray)
printArray(stringArray)