本文主要讲述泛型的使用
1、在集合中的使用
2、自定义泛型类、泛型接口、泛型方法
3、泛型与继承的关系
4、通配符
由于第一点和第二点在平常的编码工作中已熟练,本文重点讲述后面两点。
直接show the code:
package com.learn; import java.util.List; public class ParentGeneric<T> { 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> E getE(E e) { return e; } // 声明泛型方法-多个 public <E> E[] getArray(E[] arr) { return arr; } // 声明泛型方法-交互 public <E> void fromArrayToList(E[] arrayE, List<E> 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<Student>{内部CRUD方法} * 同理: public class TeacherDAO extends AbstractDAO<Teacher>{内部CRUD方法} * * 分析源码:学习泛型方法 * public interface Collection<E> extends Iterable<E> { * <T> T[] toArray(T[] a); * } * */ class SonOneGeneric<T> extends ParentGeneric<T> { } class SonTwoGeneric extends ParentGeneric<Integer> { }