泛型机制(一)

简述

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 泛型是Java 1.5引入的新特性。泛型的本质是参数化类型,这种参数类型可以用在类、变量、接口和方法的创建中,分别...
    何时不晚阅读 3,067评论 0 2
  • 想要学好java,泛型机制是一个必须要掌握的知识点,无奈很多书上写的不是很啰嗦,就是概念太多难以理解,因此参考了很...
    愚公要移山阅读 1,125评论 0 5
  • 我们做开发的时候一直会强调数据类型的概念,在Java中分为基本类型和引用数据类型,其中基本数据类型有八种,除了类以...
    逐梦々少年阅读 1,227评论 0 7
  • 简介 泛型的意思就是参数化类型,通过使用参数化类型创建的接口、类、方法,可以指定所操作的数据类型。比如:可以使用参...
    零度沸腾_yjz阅读 3,335评论 1 15
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,620评论 0 11