Android知识进阶(遥远的重头开始)

Android-Java-泛型-简单自定义类以及泛型函数

2019-07-18  本文已影响7人  MonkeyLei

直接看就好了。根据前面相关知识,基本还是能看懂滴...

Mpp.java

 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);
    }
}

使用:

image

有个优先级: 如果方法定义了泛型,就不会采用类的泛型类型了 如果没有定义,就会采用类的泛型类型.. 另外,泛型方法的泛型参数只能是泛型规定的类型,不能用别的类型...

简单记录下泛型类,泛型方法,以及简单的调用,再配合extends, super就能充分发挥泛型的优势了。基本就是这样。常规的还是能很大程度上对我们项目的重构产生很大的帮助!

上一篇 下一篇

猜你喜欢

热点阅读