Java基础 -- 泛型

news2024/9/23 15:20:57
在这里插入图片描述

Java基础 -- 泛型

    • 1. Introduction
      • 1.1 好处
      • 1.2 常用泛型
    • 2. User Guide
      • 2.1 泛型类
      • 2.2 泛型方法
      • 2.3 泛型接口
    • 3. 限定泛型范围
    • 4. Awakening


在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


1. Introduction

1.1 好处

  • 代码复用,多种数据类型执行相同的代码
  • 在编译期间可以检查类型是否安全,报警ClassCastException,类型转无法转换,同时所有强制性类型转换都是自动和隐式进行的,提高了代码的安全性和重用性
  • 提高代码的可读性

1.2 常用泛型

泛型标记说明
T(Type)表示java的类型,包括基本的类和开发者自定义的类 ,比如T Object
E(Element)表示在集合中存放的元素,是在集合中使用的 ,比如List< E > list
K(Key)表示键,在存储键值对的数据结构中使用,比如map中的key
V(Value)表示值,和K对应
N(Number)表示各种数值类型
表示不确定的java类型

2. User Guide

2.1 泛型类

  • 注意:泛型类在初始化时就把类型确定了

public class EntityTool<T> {
 
    private T entity;
 
    public T getEntity() {
        return entity;
    }
 
    public void setEntity(T entity) {
        this.entity = entity;
    }
 
    public static void main(String[] args) {
        // 创建对象并指定元素类型
        EntityTool<String> stringTool = new EntityTool<>();
        stringTool.setEntity("拔光头发的程序员");
        String s = stringTool.getEntity();
        System.out.println(s);
 
 
        // 创建对象并指定元素类型
        EntityTool<Integer> integerTool = new EntityTool<>();
        // 此时,如果这里传入的还是 String 类型,那就会在编译期报错
        integerTool.setEntity(10);
        int i = integerTool.getEntity();
        System.out.println(i);
    }
}

2.2 泛型方法

  • 注意:泛型方法在调用时才会确定最终类型

public class Show {
 
    public static  <T> T show(T t) {
        System.out.println(t);
        return t;
    }
 
    public static void main(String[] args) {
        // 返回值不用强转,传进去是什么,返回就是什么
        String s = show("一个优秀的程序员");
        int num1 = show(10);
        System.out.println(s);
        System.out.println(num1);
    }
}

2.3 泛型接口

  • 注意:泛型类在初始化时就把类型确定了
public interface MdmService<T> {
     void processRawData();
     void addBathRawData(List<T> list);
     Boolean updateBathRawData(List<T> list);
}
@Transactional
@Service
public class CrmServiceImpl implements MdmService<CustomMasterTable> {


    Logger logger = LoggerFactory.getLogger(CrmServiceImpl.class);

    @Override
    public void processRawData() {
	  。。。。
    }

    @Override
    public void addBathRawData(List<CustomMasterTable> list) {
      。。。。
    }

    @Override
    public Boolean updateBathRawData(List<CustomMasterTable> list) {
      。。。。
    }
}

3. 限定泛型范围

  • <? extends Parent> 指定了泛型类型的上限
  • <? super Child> 指定了泛型类型的下届
  • <?> 指定了没有限制的泛型类型

4. Awakening

         在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人,自然是不一样的命运。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351317.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是webpack

目录 1、什么是webpack&#xff08;必会&#xff09; 2、Webpack的优点是什么&#xff1f;&#xff08;必会&#xff09; 3、webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全&#xff08;必会&#xff09; 4、说一下 Webpack 的热更新原理(必会) 5、webpa…

为什么说接口幂等性很重要

先讲个故事大概三年前&#xff0c;外卖平台 Uber Eats 在印度发生了一次重大事故&#xff0c;使得用户可以免费获得食品。一天早上&#xff0c;有人试图通过印度的 Uber Eats 订购食物&#xff0c;并使用印度的支付平台 Paytm 付款。但是&#xff0c;他的账户里面没有足够的余额…

蓝牙耳机哪款性价比高音质好?2023公认音质最好的蓝牙耳机

如今音乐成了当下解压的方式之一&#xff0c;甚至是集中注意力的法器。耳机作为传播音乐的媒介&#xff0c;每个人对自己的专属耳机总有那么点小追求&#xff0c;高质量的耳机不仅保护双耳&#xff0c;带来的音质能让你的耳朵分分钟怀孕&#xff0c;下面分享几款2023年音质高的…

Cain执行中间人攻击

实验目的&#xff1a;通过构建虚拟场景&#xff0c;了解中间人攻击和钓鱼网站攻击的执行流程&#xff0c;熟练使用Cain & Abel工具实现攻击&#xff0c;并掌握识别和防御此类攻击的技术原理和方法。 一、场景简介 甄某为犯罪嫌疑人&#xff0c;警察想获得甄某在其单位网站…

IB学科学习方法分享,看看不同学科怎么学习?(一)

在这个部分&#xff0c;我们邀请到了在各个学科中突出的同学们&#xff0c;让他们介绍自己的学习方法。同辈的经验总是我们能够获取的珍贵的宝藏&#xff01; 分享人&#xff1a;吴 分享学科&#xff1a;VA HL &#xff08;个人选课&#xff1a;HL&#xff1a;VA 中文 经济…

同行不同命:极兔喜、韵达愁?

配图来自Canva可画 年前买坚果、牛奶、灯笼、对联等年货&#xff0c;年后寄香肠、腊肉、泡菜、水果等特产&#xff0c;春节前后是快递业迎来收发货小高峰&#xff0c;三通一达&#xff0c;顺丰、京东、极兔相继宣布“春节不打烊”消息&#xff0c;全力保障快递运力。 春节快递…

力扣-组合两个表

大家好&#xff0c;我是空空star&#xff0c;本篇带你了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;175. 组合两个表二、解题1.left join提交SQL运行结果2.right join提交SQL运行结果总结前言 一、题目&#xff1a;175. 组合两个表 表: Person ----------…

Bernstein-Vazirani算法

B-V算法 (1) 问题描述 给定布尔函数f:{0,1}n→0,1f:{\left\{ {0,1} \right\}^n} \to{0,1}f:{0,1}n→0,1, 函数fff的值是由输入比特串xxx和确定的比特串sss做模2意义下的内积&#xff1a;f(x)x⋅s(mod2),f\left( x \right) x \cdot s\left( {\bmod 2} \right),f(x)x⋅s(mod2),…

【Node.js】 npm与包

npm与包什么是包包的来源为什么需要包从哪里下载包怎么下载包初体验在项目中安装包的命令npm的注意点包的语义化版本规范包管理配置文件&#xff08;package.json&#xff09;当第三方包的体积过大时快速创建package.jsondependencies节点devDependencies节点卸载包解决下载包速…

H.264视频隐写中可用于隐藏的场地(变换过程)

与静止图像中的信息隐藏类似&#xff0c;通过位平面替换的方式&#xff0c;亮度DCT系数通常被用于信息隐藏。 Ma等[77]提出将信息嵌入在I-frame中量化的DCT系数中(亮度)。在分析DCT系数与像素值产生的失真之间的关系的基础上&#xff0c;对几个系数进行配对&#xff0c;以达到数…

Web前端的未来发展怎样?

在求职的道路上&#xff0c;很多人都会经历漫长的迷茫期&#xff0c;如何找到职业方向成为人很多正在探索的事情&#xff01;当我们决定学习一个技能的时候&#xff0c;首先会考虑到零基础是否可以学&#xff0c;这个技术的前景怎么样&#xff0c;薪资高不高&#xff0c;未来发…

JavaSE学习day8 API的使用和String的内存原理

1.API 1.1API概述 什么是API API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&#xff0c;只需要学习这…

基于机器学习的推荐算法研究与实现

摘要随着互联网的普及&#xff0c;人们可以通过搜索引擎、社交网络等方式获取大量的信息资源。但是&#xff0c;面对如此之多的信息&#xff0c;人们往往会感到迷失和困惑&#xff0c;无法快速准确地找到自己需要的信息。在这种情况下&#xff0c;推荐算法的出现为我们提供了一…

如何使用Xshell巧妙的连接服务器

最近一直在想到底写那些技术性文章&#xff0c;正好我之前买的一台服务器还没怎么使用&#xff0c;所以准备打算出一期在Xshell上使用服务器的教程的。 首先&#xff0c;为什么要使用Xshell连接云服务器呢? 1、自己打开服务器很麻烦&#xff0c;每次都要在网页进行登录操作&…

2023美赛C题:预测 Wordle 结果

以下内容全部来自本人人工翻译&#xff0c;仅供参考。 文章目录背景要求附件数据文件条目描述纽约时报网站上发布的Wordle指导方针词汇表参考文献服务背景 Wordle是目前纽约时报每天提供的一种受欢迎的谜题。玩家试图通过在六次或更少的机会内猜测一个五个字母的单词来解决谜题…

SAC代码 pytorch框架,2023年了还在用假的SAC?

呀他温&#xff0c;博主这次真要红温了&#xff0c;中路一个红温兰博请求对线&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 莫烦老师的强化学习视频不出SAC&#xff0c;我只能去看看别的程序员讲解SAC算法。结果。。。。 唉&#xff0c;&#…

后端,我是认真的

web框架介绍 1. 什么是web框架 应该叫web应用框架(web application framework)是一种开发框架。 通俗点来说&#xff0c;就是用来开发web应用的程序。 2. 为什么要使用框架来开发 互联网行业流行一句话叫“不要重复造轮子”&#xff0c;特别是对于新手和应用层开发人员。对于w…

TLP5754的代替品SLM343兼容光耦的单通道隔离驱动 应用解决方法

TLP5754的代替品SLM343兼容光耦的单通道隔离驱动应用解决方法是一种光兼容的单通道隔离MOSFET、IGBT具有不同驱动电流能力的栅极驱动器&#xff0c;以及UVLO电压电平。峰值输出电流为4.0A。主要特点和特点带来显著的性能和可靠性。性能亮点包括高共模瞬态抗扰度&#xff08;CMT…

给 “rm” 命令添加个“回收站”,再也不用担心误删文件了!

1.rm命令解析 rm命令可以删除一个目录中的一个或多个文件或目录&#xff0c;也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件&#xff0c;只是删除整个链接文件&#xff0c;而原有文件保持不变。 注意&#xff1a;使用rm命令要格外小心。因为一旦删除了…

WebSocket内存马之tomcat-websocket源码实现(内存马系列篇七)

写在前面 这篇主要是分析一下WebSocket协议在Tomcat容器中的源码实现&#xff0c;方便大家在后面能够更好的了解下一篇Websocket型内存马的原理。 这个也是内存马系列第七篇 Websocket 什么是websocket&#xff1f; 首先来了解一下什么是websocket WebSocket全双工通信协…