泛型类
public class Box {
private String object;
public void set(String object) { this.object = object; }
public String get() { return object; }
}
这样是常规定义一个类的方法 这样在我们调用这个类的时候只能使用string类型的元素,如果今后我们需要传递其他类型的元素就需要重新写一个类,代码不能复用,使用泛型 就可以解决这个,
..
这样我们的box类 就可以得到复用,我们可以将T换成任何我们想要的类型
Box<Integer> integerBox = new Box<Integer>();
Box<Double> doubleBox = new Box<Double>();
Box<String> stringBox = new Box<String>();
泛型方法
参考上面,可以想到,也是同样的,在常规方法中我们传递一个类型的元素,但是在泛型方法中,我们可以使用多个,声明一个泛型方法很简单,只要在返回类型前面加上一个类似<K, V>
的形式就行了:
public class Util {
public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) {
return p1.getKey().equals(p2.getKey()) &&
p1.getValue().equals(p2.getValue());
}
}
public class Pair<K, V> {
private K key;
private V value;
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public void setKey(K key) { this.key = key; }
public void setValue(V value) { this.value = value; }
public K getKey() { return key; }
public V getValue() { return value; }
}