泛型之泛型方法演化示例

用最原始的调用方法来输出不同数据类型的元素时,需要创建不同数据类型参数的重载方法,例如:

//普通方法
public class Generic {
    public void show(String s){
        System.out.println(s);
    }

    public void show(Integer i){
        System.out.println(i);
    }

    public void show(boolean b){
        System.out.println(b);
    }
}

/*
    操作类
 */
public class GenericDemo {
    public static void main(String[] args) {
        Generic g1 = new Generic();
        g1.show("旭旭宝宝");

        Generic g2 = new Generic();
        g2.show(20);

        Generic g3 = new Generic();
        g3.show(true);
    }
}

/*运行结果:
    旭旭宝宝
    20
    true
*/

很明显代码过于臃肿,需要多次创建新的对象,下面使用泛型类来改进:

//使用泛型类改进
public class Generic<T>{
    public void show(T t){
        System.out.println(t);
    }
}

public class GenericDemo {
    public static void main(String[] args) {

        Generic<String> g1 = new Generic<String>();
        g1.show("旭旭宝宝");

        Generic<Integer> g2 = new Generic<Integer>();
        g2.show(20);

        Generic<Boolean> g3 = new Generic<Boolean>();
        g3.show(true);
    }
}
/*运行结果:   
    旭旭宝宝
    20
    true
*/

使用泛型类后,创建对象时仍然需要明确对象的数据类型,看起来效率也不是很高,最后使用泛型方法改进:

//使用泛型方法改进
public class Generic {
    public <T> void show(T t){
        System.out.println(t);
    }
}

public class GenericDemo {
    public static void main(String[] args) {

        Generic generic = new Generic();
        generic.show("旭旭宝宝");
        generic.show(20);
        generic.show(true);
        generic.show(99.999);
    }
}
/*
    运行结果:
            旭旭宝宝
            20
            true
            99.999
*/

使用泛型方法改进后,代码变得更加简洁,敲代码效率也更高效

posted @ 2020-04-09 16:24  硬盘红了  阅读(150)  评论(0编辑  收藏  举报