1、先了解什么是泛型?
泛型即“参数化类型”。
2、一般的三种使用形式:
泛型类:
/**
* 定义一个泛型类
* @param <T>
*/
class Person<T>{
T data;
void setData(T data){
System.out.println();
}
T getData(){
return data;
}
}
泛型接口
package ceshi;
/**
* 泛型接口的两种形式
* @param <T>
*/
public interface Fanxjiekou<T> {
T getData();
}
/**
* 指定类型的继承泛型接口
*/
class zilei implements Fanxjiekou<String>{
private String txt= "test";
public String getData(){
return txt;
}
}
/**
* 非指定类型的继承泛型接口
* @param <T>
*/
class zilei2<T> implements Fanxjiekou<T>{
private T txt;
public T getData(){
return txt;
}
}
泛型方法:
package ceshi;
public class Fanxff {
public static void main(String[] args) {
read("qwsfa");
read(1234);
}
/**
* 定义一个泛型方法
* @param a
* @param <T>
*/
private static <T> void read(T a) {
System.out.println(a);
}
}
泛型限定类型:
- 在使用泛型时, 可以指定泛型的限定区域 ,例如: 必须是某某类的子类或 某某接口的实现类,格式:<T extends 类或接口1 & 接口2>
泛型中的通配符:?
1 <? extends Parent> 指定了泛型类型的上届
2 <? super Child> 指定了泛型类型的下届
3 <?> 指定了没有限制的泛型类型
注意:
java中的泛型只会在编译过程中有效