1.泛型类的定义
一个泛型类就是具有一个或多个类型变量的类。
class Pair<T>
{
private T first;
private T second;
public T getFirst() {
return first;
}
public void setFirst(T first) {
this.first = first;
}
public T getSecond() {
return second;
}
public void setSecond(T second) {
this.second = second;
}
}
2.泛型函数的定义
泛型函数可以定义在泛型类和普通类中,
class ArrayAlg
{
public static <T> T getMiddle(T... a)
{
return a[a.length / 2];
}
}
3.对类型变量进行约束.
用extends
class ArrayAlg
{
public static <T extends Comparable> T min(T[] a)
{
if (a == null || a.length == 0)
{
return null;
}
T m = a[0];
for (int i = 0; i < a.length; i++)
{
if (m.compareTo(a[i]) > 0)
{
m = a[i];
}
}
return m;
}
}
4.通配符
由于一下代码不会通过编译
Pair<Employee> b = new Pair<Manage>(); // Pair<Manage>不是Pair<Employee>的子类
所以才有通配符,通配符表示任何类
Pair<? extends Employee> b = new Pair<Manage>(); // Manage是Employee的子类
带有超类型的通配符可以向对象写入,带有子类型限定的通配符可以从泛型对象读取