泛型机制(一)

2021-04-01  本文已影响0人  coolTigers

简述

Java泛型特性与C++中的模板特性在行为上是很类似的。

优缺点

优点

a、避免了类型转换;
b、把运行期一场提升到编译器,写代码编译时就会报错;

缺点

只能存储泛型指定的数据类型

泛型方法

定义

public class GenericMethod {
    public static  <T> void method1(T t)
    {
        System.out.println(t);
    }
}

使用

public class mainFunction {
    public static void main(String[] args){
        GenericMethod.method1(1);
        GenericMethod.method1("123");
    }
}

结果

1.png

当然也可以使用普通方法。这里不再赘述。

泛型类

定义

/*
定义一个泛型类
* */
public class GenericClass<T> {
    private T name;

    public T getName() {
        return name;
    }

    public void setName(T name) {
        this.name = name;
    }
}

使用

public class mainFunction {
    public static void main(String[] args){
        GenericClass<Integer>  gc = new GenericClass<>();
        gc.setName(1);
        System.out.println(gc.getName());

        GenericClass<String>  gc1 = new GenericClass<>();
        gc1.setName("abc");
        System.out.println(gc1.getName());
    }
}

结果

2.png

泛型接口

定义

接口定义

public interface GenericInterface<T> {
    public abstract  void method(T t);
}

接口实现一

public class GenericInterfaceImpl1 implements  GenericInterface<String> {
    @Override
    public void method(String s) {
        System.out.println(s);
    }
}

接口实现二

public class GenericInterfaceImpl2<T> implements GenericInterface<T> {
    @Override
    public void method(T t) {
        System.out.println(t);
    }
}

使用

public class mainFunction {
    public static void main(String[] args){
        GenericInterfaceImpl1 gi = new GenericInterfaceImpl1();
        gi.method("string");

        GenericInterfaceImpl2<Integer> gi1 = new GenericInterfaceImpl2<>();
        gi1.method(123);

        GenericInterfaceImpl2<String> gi2 = new GenericInterfaceImpl2<>();
        gi2.method("abc");
    }
}

结果

3.png
上一篇 下一篇

猜你喜欢

热点阅读