美文网首页
Java泛型基础

Java泛型基础

作者: lxqljc | 来源:发表于2020-04-26 13:07 被阅读0次
一、介绍

泛型就是将类型参数化的过程,就是把变量类型当做一个变量。

二、使用

泛型是JDK1.5增加的新特性,泛型有三种使用方式,分别为泛型类、泛型接口、泛型方法。

1.泛型类
class Generic<T> {
    private T t;
    public Generic(T t) {
        this.t = t;
    }
}
//使用,jdk1.7之后,支持棱形语法
Generic<Integer> generic1 = new Generic<>(1);
Generic<String> generic2 = new Generic<>("hello");
2.泛型接口
interface Generic<T>{
    void setValue(T t);
    T getValue();
}
3.泛型方法
public <T> void setValue(T t){
        System.out.println(t);
}
三、泛型通配符
1.泛型任意类型(匹配Object及任意类型)
public static void print(List<?> list){
        System.out.println(list);
    }
//例如
List<String> list = new ArrayList<>();
list.add("hello");
List<Integer> list2 = new ArrayList<>();
list2.add(1);
print(list);
print(list2);
2.泛型上界(T为Number类型或者Number的子类型)
class Generic<T extends Number> {
    private T t;
    public Generic(T t) {
        this.t = t;
    }
}
//例如:
Generic<Integer> generic1 = new Generic<>(1);
Generic<Double> generic2 = new Generic<>(1.1);
//这里会发生编译错误
Generic<String> generic3 = new Generic<>("hello");
3.泛型下界(?为String类型或者String的父类)
public static void print(List<? super String> list){
        System.out.println(list);
    }
四、类型参数命名约定

最常用的类型参数名称是:

  • E - Element (Java Collections Framework广泛使用)
  • K - Key
  • N - Number
  • T - Type
  • V - Value
  • S,U,V etc. - 2nd, 3rd, 4th types
五、总结

1.将运行时可能发生的类型转换错误,提前到编译期检查。

//例如jdk1.5之前没有泛型的情况下
List list = new ArrayList();
list.add(1);
list.add("hello");
//这里会发生类型转换错误,运行时才会发现。
String str = (String) list.get(0);

2.复用代码逻辑.
3.包含任意通配符?,只能get,不能set

相关文章

  • Java 泛型

    导读 移动开发知识体系总章(Java基础、Android、Flutter) 为什么会有泛型? 泛型类 泛型方法 泛...

  • Java泛型教程

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

  • Java基础之泛型

    Java基础之泛型 泛型基本介绍 简单介绍在jdk1.6之前,还没有使用到泛型,Java类型分为原始类型、复杂类型...

  • spring 泛型处理

    java 泛型基础 泛型类型:泛型类型是在类型上参数化的泛型类或接口 泛型使用场景编译时前类型检查。定义为 Col...

  • Java泛型基础

    Java泛型基础 1. 认识泛型 泛型是在JDK1.5之后增加的新功能. 泛型可以解决数据的安全性问题, 主要的原...

  • 一文带你认识Java泛型基础

    Java泛型基础 1. 认识泛型 泛型是在JDK1.5之后增加的新功能. 泛型可以解决数据的安全性问题, 主要的原...

  • 第二十八课:泛型

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

  • Java基础(一)

    Java要点1 JAVA基础 1.对抽象、继承、多态的理解 2.泛型的作用及使用场景 1.Java泛型是JDK1....

  • 详解Java泛型之3——十分钟理解泛型擦除

    前面我们介绍了泛型以及通配符的基础概念,可以参考文章: 详解Java泛型之1——入门泛型必懂的知识点[https:...

  • Kotlin 泛型

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

网友评论

      本文标题:Java泛型基础

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