美文网首页
Java 泛型

Java 泛型

作者: 编程喵喵 | 来源:发表于2019-08-18 22:14 被阅读0次

泛型类

泛型类定义时只需要在类名后面加上类型参数即可,当然你也可以添加多个参数,类似于<K,V>,<T,E,K>等。

public class Generic<T>{ 
    private T t;

    public Generic(T t) { //泛型构造方法形参t的类型也为T,T的类型由外部指定
        this.t= t;
    }

    public T getT(){
        return t;
    }
}

泛型接口

//定义一个泛型接口
public interface Generator<T> {
    public T next();
}
  • 泛型接口未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声明也一起加到类中。
    class FruitGenerator<T> implements Generator<T>
  • 如果泛型接口传入类型参数时,实现该泛型接口的实现类,则所有使用泛型的地方都要替换成传入的实参类型。
    class DataHolder implements Generator<String>

泛型方法

泛型方法既可以存在于泛型类中,也可以存在于普通的类中。如果使用泛型方法可以解决问题,那么应该尽量使用泛型方法。
public与返回值中间非常重要,可以理解为声明此方法为泛型方法。

public <T> void PrinterInfo(T e) {
    System.out.println(e);
}

静态方法无法访问类上定义的泛型,如果在类中定义使用泛型的静态方法,需要添加额外的泛型声明(将这个方法定义成泛型方法。)

类型通配符

public static void getData(List<?> data)
类型通配符一般是使用?代替具体的类型参数。例如List<?>在逻辑上是List<String>,List<Integer>等所有List<具体类型实参>的父类。

  • 上界通配符<? extends T>
    如 List<? extends Number>来定义,如此定义就是通配符泛型值接受Number及其下层子类类型。
  • 下界通配符<? super T>>
    如 List<? super Number>来定义,表示类型只能接受Number及其三层父类类型,如 Object 类型的实例

相关文章

  • Java泛型教程

    Java泛型教程导航 Java 泛型概述 Java泛型环境设置 Java泛型通用类 Java泛型类型参数命名约定 ...

  • 第二十八课:泛型

    泛型出现之前 泛型出现之后 Java深度历险(五)——Java泛型

  • Kotlin 泛型

    说起 kotlin 的泛型,就离不开 java 的泛型,首先来看下 java 的泛型,当然比较熟悉 java 泛型...

  • java泛型中类型擦除的一些思考

    java泛型 java泛型介绍 java泛型的参数只可以代表类,不能代表个别对象。由于java泛型的类型参数之实际...

  • Java泛型

    参考:Java知识点总结(Java泛型) 自定义泛型类 自定义泛型接口 非泛型类中定义泛型方法 继承泛型类 通配符...

  • Java泛型—Java语法糖,只在编译有作用,编译后擦出泛型

    Java泛型—Java语法糖,只在编译有作用,编译后擦出泛型 在代码进入和离开的边界处,会处理泛型 Java泛型作...

  • JAVA 核心笔记 || [xxx] 泛型

    泛型 JAVA 的参数化类型 称为 泛型 泛型类的设计 Learn12.java 运行

  • 简单回顾Java泛型之-入门介绍

    什么时候开始有了Java泛型?什么是Java泛型?为什么要引入Java泛型?什么时候用到了泛型?可不可以给泛型下一...

  • Kotlin 泛型

    Kotlin 支持泛型, 语法和 Java 类似。例如,泛型类: 泛型函数: 类型变异 Java 的泛型中,最难理...

  • JAVA-泛型

    JAVA-泛型 sschrodinger 2018/11/15 简介 泛型是Java SE 1.5的新特性,泛型的...

网友评论

      本文标题:Java 泛型

      本文链接:https://www.haomeiwen.com/subject/vvvzjctx.html