直接看就好了。根据前面相关知识,基本还是能看懂滴...
import java.util.HashMap;
/**
* 泛型类 - 目的就是通用性够强,适合通用性算法(比如链表的实现,比如add通用算法
* @author hl
*
* @param <T> - 泛型类型
* @param <W> - 泛型类型
*/
public class Mpp<T, W> {
/**
* 泛型构造函数
* @param _a
* @param _b
*/
public Mpp(T _a, W _b) {
T a = _a;
W b = _b;
if (a instanceof Integer) {
}
}
public void test() {
HashMap<? extends T, ? extends W> hash = new HashMap<>();
}
public void gg() {
}
/**
* 泛型方法+泛型参数
* @param b
*/
public <T> void ggg(T b) {
}
/**
* 泛型方法
*/
public <T> void ggg(T a, T b) {
//T a = .....;
///.....等一系列操作
if (a instanceof Double && b instanceof Double) {
Double aa = (Double)a;
System.out.println("结果" + ((Double)a + (Double)b));
}
}
/**
* 泛型方法之泛型参数的调用
*/
public <T, W> void gggg() {
T a = null;
ggg(a);
}
/**
* 泛型方法的调用
*/
public <T, W> void ggggg(T a, T b) {
this.<T>ggg(a, b);
}
}
使用:

有个优先级: 如果方法定义了泛型,就不会采用类的泛型类型了 如果没有定义,就会采用类的泛型类型.. 另外,泛型方法的泛型参数只能是泛型规定的类型,不能用别的类型...
简单记录下泛型类,泛型方法,以及简单的调用,再配合extends, super就能充分发挥泛型的优势了。基本就是这样。常规的还是能很大程度上对我们项目的重构产生很大的帮助!
网友评论