本文主要讲述泛型的使用
1、在集合中的使用
2、自定义泛型类、泛型接口、泛型方法
3、泛型与继承的关系
4、通配符
由于第一点和第二点在平常的编码工作中已熟练,本文重点讲述后面两点。
直接show the code:
package com.learn;
import java.util.List;
public class ParentGeneric {
private String name;
private int id;
private T t;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public T getT() {
return t;
}
public void setT(T t) {
this.t = t;
}
// 声明泛型方法-单个
public E getE(E e) {
return e;
}
// 声明泛型方法-多个
public E[] getArray(E[] arr) {
return arr;
}
// 声明泛型方法-交互
public void fromArrayToList(E[] arrayE, List listE) {
for (E e : arrayE) {
listE.add(e);
}
}
@Override
public String toString() {
return "ParentGeneric [name=" + name + ", id=" + id + ", t=" + t + "]";
}
}
/*
* 继承泛型类或接口时,可以指名泛型的类型
*
* 通常在DAO处理的时候,采用指名泛型类型(泛型就是某个Data Access Object)
* 如:public class StudentDAO extends AbstractDAO{内部CRUD方法}
* 同理: public class TeacherDAO extends AbstractDAO{内部CRUD方法}
*
* 分析源码:学习泛型方法
* public interface Collection extends Iterable {
* T[] toArray(T[] a);
* }
*
*/
class SonOneGeneric extends ParentGeneric {
}
class SonTwoGeneric extends ParentGeneric {
}