1、泛型类(靠自己的理解所写,找完整的定义去这里 完整定义)
public class Generic<T>{ //定义泛型类,声明T为泛型
private T key; //以T为类型,声明变量
Generic(T key) //以T为类型的参数
{
this.key = key;
}
public T getKey() { //以T为类型的返回值
return key;
}
public static void main(String[] args) {
Generic<String> generic = new Generic<>("cc");
String key1 = generic.getKey();
System.out.println(key1);
}
}
2、泛型接口
public interface MyGeneric <T> {
void add(T key);
void get(T index);
void size() ;
}
public class MyList<T> implements MyGeneric<T>{ //泛型类继承泛型接口。首先定义一个泛型T,传泛型T给接口
@Override
public void add(T key) {
}
@Override
public void get(T index) {
}
@Override
public void size() {
}
}
3、泛型方法
public class GenericMethod {
public <T> T getCode(T tClass) throws Exception //第一个是<T>是定义该方法是一个泛型方法,就是初始化一个T的类型,供给该方法使用T
{
return tClass;
}
}
4、泛型通配符--?
public void showKeyValue1(Generic<?> obj){
Log.d("泛型测试","key value is " + obj.getKey());
}
泛型通配符的目的是解决代码冗余,写一个方法,可以提供给多个类型所使用。就像可以传入String ,Integet,Double等等,都可以使用一个方法了。原理是:?相当于是所有类型的一个父类型,是一个实参。