泛型
原创大约 1 分钟约 304 字
1. 接口泛型
public interface Dao<T> {
public void add(T t);
public void remove(T t);
public void update(T t);
public void fiid(T t);
}
2. 类泛型
public class DaoImpal<T> implements Dao<T>{
@Override
public void add(T t) {
System.out.println("增加了一个" + t);
}
@Override
public void remove(T t) {
System.out.println("删除了一个"+ t);
}
@Override
public void update(T t) {
System.out.println("修改了一个" + t);
}
@Override
public void fiid(T t) {
System.out.println("找到了一个" + t);
}
}
3. 方法泛型
public class Method {
// 变量 返回值 传入的参数类型来决定T泛型到底是什么
public static <T> List<T> getList(T[] ts){
List<T> list = new ArrayList<T>();
for(T t : ts){
list.add(t);
}
return list;
}
public static void main(String[] args) {
String[] s = {"a", "b", "c", "d", "e", "f"};
List<String> list = Method.getList(s);
System.out.println(list);
}
}
4. 通配符
/***
* 传过来的参数必须是动物List
* ? extends 类 泛型必须是XXX的子类或者本身
*/
public void wei(List<? extends Animal> anilist){
for(Object a : anilist){
Animal ani = (Animal)a;
ani.eat();
}
}
/***
* 传过来的参数必须是动物List
* ? super 类 泛型必须是XXX的父类或者本身
*/
public void wei2(List<? super BoSiCat> anilist){
for(Object a : anilist){
Animal ani = (Animal)a;
ani.eat();
}
}