5-Java 泛型

2023-10-27

5 泛型

泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数

5.1 泛型方法

  • 在调用时可以接收不同类型的参数
  • 每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开
  • 类型参数能被用来声明返回值类型
  • 泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像 int、double、char 等)

5.2 java 中范型标记符

  • E - Element (在集合中使用,因为集合中存放的是元素)
  • T - Type(Java 类)
  • K - Key(键)
  • V - Value(值)
  • N - Number(数值类型)
  • ? - 表示不确定的 java 类型

5.3 类型通配符

  • 类型通配符一般是使用 ? 代替具体的类型参数。例如 List<?> 在逻辑上是 List,List 等所有 List<具体类型实参> 的父类

5.4 实例1 — 泛型方法

package GenericsDemo;

public class genericDemo {
    public static < E > void printArray(E[] array){
        for(E element : array){
            System.out.println(element);
        }
    }

    public static void main(String[] args) {
        Integer[] intArray = {1 ,2, 3, 4, 5};
        Double[] doubleArray = {1.1, 2.1, 3.1, 4.1};
        Character[] charArray = {'a', 'b', 'c', 'd'};

        System.out.println("整型数组元素为:");
        printArray(intArray);
        System.out.println("双精度型数组元素为:");
        printArray(doubleArray);
        System.out.println("字符型数组元素为:");
        printArray(charArray);
    }
}

5.5 泛型类

package GenericsDemo;

public class genericClassDemo <T>{
    public T val;
    public void add (T val){
        this.val = val;
    }
    public void display(){
        System.out.println(this.val);
    }

    public static void main(String[] args) {
        genericClassDemo<Integer> intTest = new genericClassDemo<>();
        genericClassDemo<String> stringTest = new genericClassDemo<>();

        intTest.add(1);
        stringTest.add("fdsafdas");

        intTest.display();
        stringTest.display();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

5-Java 泛型 的相关文章

随机推荐

  • hive数据仓库--Hive介绍

    1 什么是Hive Hive是基于Hadoop的 个数据仓库 具 来进 数据提取 转化 加载 这是 种可以存储 查询和分析存储在Hadoop中的 规模数据的机制 Hive数据仓库 具能 将结构化的数据 件映射为 张数据库表 并提供类SQL的
  • 探索AI图像安全,助力可信AI发展

    探索AI图像安全 助力可信AI发展 0 前言 1 人工智能发展与安全挑战 1 1 人工智能及其发展 1 2 人工智能安全挑战 2 WAIC 2023 多模态基础大模型的可信 AI 2 1 WAIC 2023 专题论坛 2 2 走进合合信息
  • 【教程、技巧】Solid Works 2020 开启“小金球”

    Solid Works 2020 开启 小金球 一 操作须知 免责声明 修改注册表有一定风险 若继续进行操作表明你有能力承担相应的风险 带来的损失与笔者无关 注意事项 操作前请先关闭正在运行的SolidWorks A卡请看这里 N卡请看这里
  • 关于qt连接数据库,成功打开,感觉明明有表,但是读不到数据的问题

    2023 9 9 关于qt连接数据库 成功打开 感觉明明有表 但是读不到数据的问题 首先我的代码是没有问题的 其实这是一个使用qtcreator的编译问题 上图是我的项目结构 eMarket db文件与源代码放在同级目录下 源码如上图 产生
  • MySQL学习笔记(一)

    一 MySQL基础命令 1 关系型MySQL在互联网行业广泛使用 目前主流版本有5 7 x和8 0 x 企业使用5 7 x的较多一些 8 0 x性能提升较高 逐渐有很多公司用起来8 0 x版本了 本文以mysql5 7 29版本总结 依持久
  • python中tk的用法_python3.0 tk的使用

    展开全部 有什么问题吗32313133353236313431303231363533e78988e69d8331333361303038 刚好之前写过一些关于py3 tk的东西 可以一起探讨一下 给你一个例子 import urllib
  • Linux开启Docker远程访问并设置安全访问(证书密钥)

    bin sh ip 你的IP password 你的密码 3个字节以上 不然生成文件数不对 dir root docker cert 证书生成位置 validity period 10 证书有效期10年 将此shell脚本在安装docker
  • kali2022安装冰蝎

    资源包准备 下载java8 因其客户端要求jre8 服务端 net 2 0 php 5 3 7 4 java 6 Java Archive Downloads Java SE 8 冰蝎下载地址 https github com rebeyo
  • 查看Eclipse版本号及各个版本区别

    1 找到eclipse安装目录 2 进入readme文件夹 打开readme eclipse html 3 readme eclipse html呈现的第二行即数字版本号 如 Eclipse Project Release Notes Re
  • Idea集成Yapi插件自动生成接口文档

    1 Idea安装插件 easy yapi 2 安装后重启Idea 3 打开settings 在Other Settings下打开EasyApi菜单 配置Yapi服务器地址 只需要对应的ip与端口即可 不需要具体那个项目 4 打开对应需要生成
  • Spring Boot 2,吃透这份阿里P8纯手打Java面经

    如何使用Elasticsearch 安装Elasticsearch https www elastic co cn downloads elasticsearch 这里我们选择的是6 2 2版本的ES 因为我在spring data ela
  • 百度Q4及全年财报:百度智能云强化AI优势,文心一言将推动云市场格局洗牌

    北京时间2月22日 百度 NASDAQ BIDU HKEX 9888 发布了截至2022年12月31日的第四季度及全年未经审计的财务报告 2022年 百度实现营收1236 75亿元 归属百度的净利润 非美国通用会计准则 206 8亿元 同比
  • 初学者必会的100个编程代码

    这是本文的目录 前言 1 for循环中的else条件 2 数字求和 3 随机数生成 4 将列表中的所有元素作为参数传递给函数 5 获取列表的所有中间元素 6 使用一行代码赋值多个变量 7 Python清空列表 8 通过Enum枚举同一标签或
  • Android中Fragment的hide和show的一些技巧

    我们App中主页是四个Fragment 通过RadioGroup的onCheckChanged来调用show和hide实现主页面Fragment的切换 此时就有一个问题就是 我们需要知道每一个Fragment的生命周期 此时就可以重写 Ov
  • 接受拖放文件

    需要重载类的WM DROPFILE消息 接受拖放的文件并显示路径与文件名的示例 void CYuEdit OnDropFiles HDROP hDropInfo TODO Add your message handler code here
  • linux-vsprintf.c

    linux kernel vsprintf c 对参数产生格式化的输出 C 1991 Linus Torvalds vsprintf c Lars Wirzenius Linus Torvalds Wirzenius wrote this
  • Java一个属性依赖于另外一个属性的值

    一个java类中的一个属性最开始需要从另外一个属性的值得到 现在举例如下 最简单的例子 判断是否成功 Data ApiModel description 返回结果集 public class ReturnResult
  • 人工神经网络的基本模型,神经网络解剖学模型图

    神经网络是什么 神经网络可以指向两种 一个是生物神经网络 一个是人工神经网络 生物神经网络 一般指生物的大脑神经元 细胞 触点等组成的网络 用于产生生物的意识 帮助生物进行思考和行动 人工神经网络 Artificial Neural Net
  • plsql显示不出来服务器,求救:PLSQL调用webservice服务器端获取不到值

    我使用的是UTL DBWS包去调用webservice 现在我测试可以通过调用 但是发现服务器端获取不到值我贴下我的代码 create or replace procedure pro trig test is service utl db
  • 5-Java 泛型

    5 泛型 泛型的本质是参数化类型 也就是说所操作的数据类型被指定为一个参数 5 1 泛型方法 在调用时可以接收不同类型的参数 每一个类型参数声明部分包含一个或多个类型参数 参数间用逗号隔开 类型参数能被用来声明返回值类型 泛型方法体的声明和