day19_java泛型

泛型

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。保证了java的安全性

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

泛型的定义:泛型是一种把类型明确的工作推出到创建对象或调用方法的时候,才去明确特殊类型,参数化类型,把类型当作参数一样进行传递

1、格式:

<数据类型>// 数据类型只能是引用类型

2、好处:

  • 把运行时报的错误提前到编译时期
  • 避免了强制转换
  • 优化程序的设计,解决黄色警告线

3、泛型的引用:

  1. 类上定义泛型

    class ObjectTool<T>{ // 定义泛型时用<>,一般里写Tprivate T t; // 使用泛型时不加<>,直接写里面的参数public void setT(T t){this.t = t;}public T getT(){return t;}
    }
    public class Demo{public static void main(String[] args){// 在创建objecttool对象时明确数据类型为stringObjectTool<String> tool = new ObjectTool<String>();// ObjectTool<String> tool = new ObjectTool<>(); tool.setT("123");System.out.println(tool.getT());}
    }// 输出:123
    
  2. 在方法上定义泛型

    在方法上定义泛型相当于:可以传递任意类型的参数,在调用方法时明确该数据类型

    public <T> void show(T t){// 泛型定义一般写在修饰符后面,返回值类型前面System.out.println(t);
    }
    
  3. 在接口上定义泛型

    • 方法1:

      public interface Say<T> {//声明了一个带有泛型类型的方法T printT(T t);
      }
      
 ### 4、泛型通配符1. **`<?>`**:任意类型
2. **`<? extends E>`**:向下限定,E及其子类
3. **`<? super E>`**:向上限定,E及其父类

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

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

相关文章

AWS EC2使用 instance profile 访问S3

AWS EC2 instance可以使用instance profile 配置访问S3的权限。 然后就可以直接在EC2上执行 python代码或者AWS CLI去访问S3了。 唯一需要注意的地方是&#xff0c;申明region。 示例代码&#xff1a; aws s3 ls xxxx-s3-bucket --region xxx-region import boto3 client …

一文读懂MySQL基础知识文集(8)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

IDEA 报错

IDEA 报错&#xff1a; Cannot resolve symbol&#xff1a;这通常是由于 IDEA 无法识别您正在使用的类或方法导致的。请确保您已经导入了正确的包&#xff0c;并且您的类路径设置正确。 NullPointerException&#xff1a;这通常是由于您的代码尝试访问空对象或空值导致的。请检…

JavaScript 函数的返回值

JavaScript 函数的返回值 JavaScript 函数的返回值是函数执行后返回的值&#xff0c;可以是任意类型的值&#xff0c;包括数字、字符串、布尔值、对象等。函数的返回值通过 return 关键字来指定&#xff0c;如果函数没有指定返回值&#xff0c;则默认返回 undefined。例如&…

Qt处理焦点事件(获得焦点,失去焦点)

背景&#xff1a; 我只是想处理焦点动作&#xff0c;由于懒&#xff0c;上网一搜&#xff0c;排名靠前的一位朋友&#xff0c;使用重写部件的方式实现。还是因为懒&#xff0c;所以感觉复杂了。于是又花了一分钟解决了一下。 所以记录下来&#xff0c;以免以后忘了。 思路&a…

单目相机测距(3米范围内)二维码实现方案(python代码 仅仅依赖opencv)

总体思路:先通过opencv 识别二维码的的四个像素角位置,然后把二维码的物理位置设置为 cv::Point3f(-HALF_LENGTH, -HALF_LENGTH, 0), //tl cv::Point3f(HALF_LENGTH, -HALF_LENGTH, 0), //tr cv::Point3f(HALF_LENGTH, HALF_LENGTH, 0), //br cv::P…

四年编程成长总结

文章目录 计算机计算机基础知识操作系统计算机网络 自考学习与备考考试经历 软考学习与准备考试成果人生成长自主学习解决问题团队合作 总结 计算机 计算机是我学习和应用Java编程的基础&#xff0c;它为我提供了一个强大的工具和平台。在这四年的学习中&#xff0c;我逐渐深入…

软件运行原理 - 内存模型 - 栈内存

说明 C/C软件运行时&#xff0c;内存根据使用方式的不同分为堆内存和栈内存&#xff0c;栈内存使用有以下特征&#xff1a; 栈内存使用&#xff08;申请、释放&#xff09;由系统自动分配和释放&#xff0c;程序员不用做任何操作。栈内存重复使用&#xff0c;进入函数时数据入…

什么是特征图?

在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;特征图是在传递给卷积层的图像上发生卷积操作后卷积层的输出。 特征图是如何形成的&#xff1f; 在上面的插图中&#xff0c;我们可以看到特征图是如何从提供的输入图像中形成的。 要发送到卷积层的图像是一个包含像…

AutoSAR(基础入门篇)1.2-AutoSAR的发展史

目录 一、AutoSAR成员 二、AutoSAR历史发展 三、未使用AutoSAR前的缺点 1、原始状态

JavaScript 和 HTML DOM 参考手册

JavaScript 和 HTML DOM 参考手册 js的变量类型有字符串,布尔等 在操作这些变量类型的时候,可以将他们看成是对象来操作 因为js 把一切都封装成对象来看 获取字符串的长度 var str hello world; console.log(str.length); //11 console.log(str.substr(0,5)); // hello c…

微服务网关组件Gateway实战

1. 需求背景 在微服务架构中&#xff0c;通常一个系统会被拆分为多个微服务&#xff0c;面对这么多微服务客户端应该如何去调用呢&#xff1f;如果根据每个微服务的地址发起调用&#xff0c;存在如下问题&#xff1a; 客户端多次请求不同的微服务&#xff0c;会增加客户端代码…

聚首引领行业风潮!聚首品牌联动资源价值平台发布会正式启航

2023年12月10日&#xff0c;由杭州建筑装饰学会、浙江聚首联优材料科技有限公司主办&#xff0c;天尚设计集团、公和设计集团、铭扬工程设计集团、地标设计集团、上宸工程设计集团、华坤建筑设计院、广厦建筑设计研究院、上海传承博华建筑规划设计院、航冠工程设计院、浙江鸿能…

Github项目-CNNResnet9-残差神经网络水果多分类项目

ResNet-论文全文完整翻译注解 - 知乎 你必须要知道CNN模型&#xff1a;ResNet - 知乎 #!/usr/bin/env python # coding: utf-8 #https://github.com/SehajS/cnn-resnet-fruit-classification # # Classifying Fruits from their Images # # This project aims at creating a…

设计模式——建造者模式(创建型)

引言 生成器模式是一种创建型设计模式&#xff0c; 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 问题 假设有这样一个复杂对象&#xff0c; 在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作。 这些初始化代码…

Python3开发环境的搭建

1&#xff0c;电脑操作系统的确认 我的是win10、64位的&#xff0c;你们的操作系统可自寻得。 2&#xff0c;Python安装包的下载 &#xff08;1&#xff09;浏览器种输入网址&#xff1a;https://www.python.org 选择对应的系统&#xff08;我的是win10/64位) &#xf…

设计模式(二)-创建者模式(5)-建造者模式

一、为何需要建造者模式&#xff08;Builder&#xff09;? 在软件系统中&#xff0c;会存在一个复杂的对象&#xff0c;复杂在于该对象包含了很多不同的功能模块。该对象里的各个部分都是按照一定的算法组合起来的。 为了要使得复杂对象里的各个部分的独立性&#xff0c;以及…

腾讯物联网平台之规则引擎

1.腾讯物联网平台简介 腾讯云物联网开发平台&#xff08;IoT Explorer&#xff09;为客户提供便捷的物联网开发工具与服务&#xff0c;助力客户更高效的完成设备接入&#xff0c;并为客户提供物联网应用开发及场景服务能力&#xff0c;帮助客户高效、低成本构建物联网应用。  …

SpringBoot集成系列--RabbitMQ

文章目录 一、代码1、添加依赖2、配置RabbitMQ连接3、RabbitMQ配置4、创建生产者5、创建消费者6、测试 二、遇到的问题1、Channel shutdown2、收不到信息3、安装RabbitMQ&#xff0c;无法访问控制台访问 一、代码 1、添加依赖 在pom.xml文件中添加RabbitMQ的相关依赖 <de…

uniapp flex:1不生效

包裹view顶层 不能添加 display: flex;<template><view class"container"><tHeader :title"采购管理" :showScrollTar"true" :scroll"scroll" :tabList"tabList" :isFixed"true"change"chang…