IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java集合之泛型 -> 正文阅读

[Java知识库]java集合之泛型

泛型概述

  • java泛型是JDK1.5中引入的一个新特性,本质是参数化类型,把类型作为参数传递。
  • 常见的形式由泛型类,泛型方法,泛型接口
  • 语法:<T…>T称为类型占位符,表示一种引用类型。
  • 好处:
  1. 提高代码的重用性
  2. 防止类型转换异常,提高代码的安全性。
    3)规范类型

泛型的分类

泛型类

在类的后面加泛型,可以使用多个参数.

package genericedemo;

/**
 * 定义的泛型类
 */
public class GenericeClass<E,T> {
    //属性
    private E e;
    private T t;

    public E getE() {
        return e;
    }

    public void setE(E e) {
        this.e = e;
    }

    public T getT() {
        return t;
    }

    public void setT(T t) {
        this.t = t;
    }
}

package genericedemo;

public class TestGenericeClass {
    public static void main(String[] args) {
        //在使用泛型类的时候,需要确定类型
        GenericeClass<String,Integer> gc = new GenericeClass<>();
        gc.setE("hello"); //设置字符串类型
        System.out.println(gc.getE());//获取赋予字符串类型的值

        gc.setT(10); //设置整数类型的值
        System.out.println(gc.getT());
    }
}

泛型接口

在接口后面加泛型,可以是多个数据类型

package genericedemo;

/**
 * @Description:
 * 泛型接口
 */
public interface GenericeInterface<E,H> {
    void test1();
    E test2();
    H test3(E e);
}

//实现类,在实现泛型接口的时候,需要确定类型
class GenericeInterfaceImpl implements GenericeInterface<Integer,String>{

    @Override
    public void test1() {
        System.out.println("test1.............");
    }

    @Override
    public Integer test2() {
        return 100;
    }

    @Override
    public String test3(Integer integer) {
        System.out.println(integer);//10
        return "你好";
    }
}

package genericedemo;

public class TestGenericeInterface {
    public static void main(String[] args) {
        GenericeInterface<Integer,String> gif = new GenericeInterfaceImpl();
        gif.test1();
        Integer i = gif.test2();
        System.out.println(i);//100
        System.out.println(gif.test3(10));//10
    }
}

泛型方法

在方法的前面加泛型,表示泛型方法.

package genericedemo;

/**
 * 泛型方法
 */
public class GenericeMethod<G,H> {
    public void show1(H h){
        System.out.println(h);
    }
    //返回类型的时候,规定一种类型<类型>
    public <A> A show2(A h){
        return h;
    }
    public G show3(G g,H h){
        System.out.println(h);//java
        return g;//300
    }

}

package genericedemo;

public class TestGenericeMethod {
    public static void main(String[] args) {
        //在创建对象的时候,确定类型
        GenericeMethod<Integer,String> gm = new GenericeMethod<>();
        gm.show1("hello");
        Integer s = gm.show2(100);
        System.out.println(s);
        Integer i = gm.show3(300, "java");
        System.out.println(i);


    }
}

泛型限定符

  • <?>表示任意的数据类型
  • <? extends T>表示T数据类型和它的子类型
  • <? super T>表示T数据类型和它的父类型.
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:17:51  更:2022-03-10 22:21:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:13:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码