当前位置: 首页 > news >正文

JAVA SE -- 第十四天

(全部来自“韩顺平教育”)

泛型

一、泛型

1、基本介绍

①泛型又称参数类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题

②在类声明或实例化时只要指定好需要的具体的类型即可

③Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁,健壮

④泛型的作用:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。

2、泛型的好处

①编译时,检查添加元素的类型,提高了安全性

②减少了类型转换的次数,提高效率

③不再提示编译警告

3、泛型的声明

interface 接口<T>{}  或   class 类<K,V>{}说明:
1)其中,T,K,V不代表值,而是表示类型
2)任意字母都可以。常用T表示,是Type的缩写

4、泛型的实例化

要在类名后面指定类型参数的值(类型),如:

①List<String> strList = new ArrayList<String>();

②Iterator<Customer> iterator = customers.iterator();

5、注意事项

①interface List<T>{},public class HashSet<E>{}..等等

说明:T,E只能是引用类型

②在给泛型制定具体类型后,可以传入该类型或其子类型

③泛型使用形式

List<Integer> list1 = new ArrayList<Integer>();

List<Integer> list2 = new ArrayList<>();

④若写成List list3 = new ArrayList(); 默认给它的泛型是【<E>  E就是Object】

 

二、自定义泛型

1、基本语法

class 类名<T,R...> {//...表示可以有多个泛型成员
}

注意细节:

①普通成员可以使用泛型(属性、方法)

②使用泛型的数组,不能初始化

③静态方法中不能使用类的泛型

④泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)

⑤如果在创建对象时,没有指定类型,默认为Object

2、自定义泛型接口

interface 接口名<T,R...>{
}

注意细节:

①接口中,静态成员也不能使用泛型

②泛型接口的类型,在继承接口或者实现接口时确定

③没有指定类型,默认为Object

 3、自定义泛型方法

修饰符 <T,R...> 返回类型 方法名(参数列表){
}

注意细节:

①泛型方法,可以定义在普通类中,也可以定义在泛型类中

②当泛型方法被调用时,类型会确定

③public void eat(E e){}。修饰符后没有<T,R...> eat方法不是泛型方法,而是使用了泛型

4、泛型的继承和通配符

说明:

①泛型不具备继承性

②<?>:支持任意泛型类型

③<? extends A>:支持A类以及A类的子类,规定了泛型的上限

④<? super A>:支持A类以及A类的父类,不限于直接父类,规定了泛型的下限

三、JUnit

1、基本介绍

①JUnit是一个Java语言的单元测试框架

②多数Java的开发环境都已经集成了JUnit作为单元测试的工具

相关文章:

JAVA SE -- 第十四天

&#xff08;全部来自“韩顺平教育”&#xff09; 泛型 一、泛型 1、基本介绍 ①泛型又称参数类型&#xff0c;是Jdk5.0出现的新特性&#xff0c;解决数据类型的安全性问题 ②在类声明或实例化时只要指定好需要的具体的类型即可 ③Java泛型可以保证如果程序在编译时没有发…...

微信小程序监测版本更新

在index.js里面 不放到app.js里面是因为有登录页面&#xff0c;在登录页面显示更新不太友好 onShow() {const updateManager wx.getUpdateManager()// 请求完新版本信息的回调updateManager.onCheckForUpdate(res > {if (res.hasUpdate) {// 新版本下载成功updateManage…...

《Java面向对象程序设计》学习笔记——第 2 章 基本数据类型、数组和枚举类型

专栏&#xff1a;《Java面向对象程序设计》学习笔记...

TDesign中后台管理系统-访问后端服务

目录 1 修改后端服务地址2 解决跨域问题3 动态获取菜单4 测试后端接口5 前后端联调总结 目前我们已经搭建了TDesign的前端和express的后端&#xff0c;目前是两个独立的应用。通常我们需要把前后端集成在一起&#xff0c;TDesign已经配置了相关的信息&#xff0c;只需要修改后端…...

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集&#xff08;多变量&#xff09;2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集&#xff08;单变量&#xff09;附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…...

ElasticSearch基础篇-Java API操作

ElasticSearch基础-Java API操作 演示代码 创建连接 POM依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sch…...

解决uniapp的tabBar使用iconfont图标显示方块

今天要写个uniapp的移动端项目&#xff0c;底部tabBar需要添加图标&#xff0c;以往都是以图片的形式引入&#xff0c;但是考虑到不同甲方的主题色也不会相同&#xff0c;使用图片的话&#xff0c;后期变换主题色并不友好&#xff0c;所以和UI商量之后&#xff0c;决定使用icon…...

UE4/5C++多线程插件制作(0.简介)

目录 插件介绍 插件效果 插件使用 English 插件介绍 该插件制作&#xff0c;将从零开始&#xff0c;由一个空白插件一点点的制作&#xff0c;从写一个效果到封装&#xff0c;层层封装插件&#xff0c;简单粗暴的对插件进行了制作&#xff1a; 插件效果 更多的是在cpp中去…...

ChatFile实现相关流程

文本上传构建向量库后台库的内容 调用上传文件接口先上传文件 存在疑问:暂时是把文件保存在tmp文件夹,定时清理,是否使用云存储 根据不同的文件类型选取不同的文件加载器加载文件内容 switch (file.mimetype) {case application/pdf:loader new PDFLoader(file.path)breakc…...

15 文本编辑器vim

15.1 建立文件命令 如果file.txt就是修改这个文件&#xff0c;如果不存在就是新建一个文件。 vim file.txt 使用vim建完文件后&#xff0c;会自动进入文件中。 15.2 切换模式 底部要是显示插入&#xff0c;是编辑模式&#xff1b; 按esc&#xff0c;底部要是空白的&#xff0…...

如何运行疑难解答程序来查找和修复Windows 10中的常见问题

如果Windows 10中出现问题&#xff0c;运行疑难解答可能会有所帮助。疑难解答人员可以为你找到并解决许多常见问题。 一、在控制面板中运行疑难解答 1、打开控制面板&#xff08;图标视图&#xff09;&#xff0c;然后单击“疑难解答”图标。 2、单击“疑难解答”中左上角的…...

程序员成长之路心得篇——高效编码诀窍

随着AIGC的飞速发展&#xff0c;程序员越来越能够感受到外界和自己的压力。如何能够在AI蓬勃发展的时代不至于落后&#xff0c;不至于被替代&#xff1f;项目的开发效率起了至关重要的作用。 首先提出几个问题&#xff1a; 如何实现高效编程?高效编程的核心在于哪里&#xff…...

matlab使用教程(6)—线性方程组的求解

进行科学计算时&#xff0c;最重要的一个问题是对联立线性方程组求解。在矩阵表示法中&#xff0c;常见问题采用以下形式&#xff1a;给定两个矩阵 A 和 b&#xff0c;是否存在一个唯一矩阵 x 使 Ax b 或 xA b&#xff1f; 考虑一维示例具有指导意义。例如&#xff0c;方程 …...

Verilog语法学习——边沿检测

边沿检测 代码 module edge_detection_p(input sys_clk,input sys_rst_n,input signal_in,output edge_detected );//存储上一个时钟周期的输入信号reg signal_in_prev;always (posedge sys_clk or negedge sys_rst_n) beginif(!sys_rst_n)signal_in_prev < 0;else…...

springboot和springcloud的联系与区别

什么是springboot&#xff1f; Spring Boot是一个用于简化Spring应用程序开发的框架&#xff0c;它提供了一种约定优于配置的方式&#xff0c;通过自动配置和快速开发能力&#xff0c;可以快速搭建独立运行、生产级别的Spring应用程序。 在传统的Spring应用程序开发中&#xf…...

【Web开发指南】如何用MyEclipse进行JavaScript开发?

由于MyEclipse中有高级语法高亮显示、智能内容辅助和准确验证等特性&#xff0c;进行JavaScript编码不再是一项繁琐的任务。 MyEclipse v2023.1.2离线版下载 JavaScript项目 在MyEclipse 2021及以后的版本中&#xff0c;大多数JavaScript支持都是开箱即用的JavaScript源代码…...

【C++进阶】多态

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C进阶 ⭐代码仓库&#xff1a;C进阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…...

决策树的划分依据之:信息增益率

在上面的介绍中&#xff0c;我们有意忽略了"编号"这一列.若把"编号"也作为一个候选划分属性&#xff0c;则根据信息增益公式可计算出它的信息增益为 0.9182&#xff0c;远大于其他候选划分属性。 计算每个属性的信息熵过程中,我们发现,该属性的值为0, 也就…...

SolidUI社区-独立部署 和 Docker 通信分析

背景 随着文本生成图像的语言模型兴起&#xff0c;SolidUI想帮人们快速构建可视化工具&#xff0c;可视化内容包括2D,3D,3D场景&#xff0c;从而快速构三维数据演示场景。SolidUI 是一个创新的项目&#xff0c;旨在将自然语言处理&#xff08;NLP&#xff09;与计算机图形学相…...

Windows下FreeImage库的配置

首先下载FreeImage库&#xff0c;http://freeimage.sourceforge.net/download.html&#xff0c;官网下载如下&#xff1a; 内部下载地址&#xff1a;https://download.csdn.net/download/qq_36314864/88140305 解压后&#xff0c;打开FreeImage.2017.sln&#xff0c;如果是vs…...

Delphi7 突破局限!借助Python扩展程序能力。

在桌面开发领域&#xff0c;Delphi7 凭借其简洁高效的可视化开发能力、稳定的运行性能&#xff0c;至今仍被许多开发者用于工业自动化、金融终端、桌面工具等项目开发。但不可否认的是&#xff0c;Delphi7 在网络数据抓取、AI交互、复杂数据处理等场景中存在天然局限&#xff0…...

基于LLM的dbt智能体:自动化数据建模与项目管理的工程实践

1. 项目概述&#xff1a;当数据建模遇上大语言模型 最近在数据工程圈里&#xff0c;一个叫 pragunbhutani/dbt-llm-agent 的项目引起了我的注意。简单来说&#xff0c;它试图用大语言模型&#xff08;LLM&#xff09;来辅助甚至自动化我们日常的 dbt 数据建模工作。作为一个和…...

基于ESP32-S3与CircuitPython的NASA小行星追踪器项目实践

1. 项目概述&#xff1a;一个会“说话”的太空瞭望台如果你对头顶那片星空既充满好奇又带有一丝敬畏&#xff0c;想知道是否有“天外来客”正悄无声息地接近我们&#xff0c;那么这个项目就是为你准备的。这不是一个简单的数据看板&#xff0c;而是一个亲手搭建的、能实时“对话…...

量子计算中的辛基理论与MBQC实现

1. 量子计算中的辛基基础概念在量子计算领域&#xff0c;辛基&#xff08;Symplectic Basis&#xff09;是描述多量子比特系统的重要数学工具。它本质上是一个满足特定对易关系的基组&#xff0c;能够简洁地表示量子态和量子操作。理解辛基需要从有限域上的向量空间开始——具体…...

基于Arduino与步进电机的DIY无线电动相机滑轨制作全攻略

1. 项目概述&#xff1a;打造你的第一台无线电动相机滑轨如果你玩摄影或者视频创作&#xff0c;肯定对那种平滑、富有电影感的平移镜头&#xff08;Dolly Shot&#xff09;着迷过。专业级的电动滑轨动辄大几千甚至上万&#xff0c;让很多个人创作者望而却步。今天&#xff0c;我…...

Adobe MAX 2024未公开彩蛋:Sora 2本地推理模块如何通过Premiere Ultra引擎实现离线实时预览(含CUDA核心绑定指南)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Adobe MAX 2024未公开彩蛋的发现与验证 在 Adobe MAX 2024 主会场演示视频的第 47 分 23 秒处&#xff0c;开发者无意间触发了隐藏的调试面板——该面板仅在启用特定环境变量且运行于 macOS Sonoma Ap…...

AI编程助手My_CoPaw:从代码补全到智能协作者的架构演进

1. 项目概述&#xff1a;当你的代码有了“猫爪”伙伴最近在GitHub上闲逛&#xff0c;发现一个挺有意思的项目&#xff0c;叫haozhuoyuan/My_CoPaw。光看名字&#xff0c;CoPaw——协作的爪子&#xff0c;是不是立刻联想到“猫爪”&#xff08;Cat‘s Paw&#xff09;和“协作”…...

ComfyUI-Inpaint-CropAndStitch终极指南:30倍加速AI图像修复的完整教程

ComfyUI-Inpaint-CropAndStitch终极指南&#xff1a;30倍加速AI图像修复的完整教程 【免费下载链接】ComfyUI-Inpaint-CropAndStitch ComfyUI nodes to crop before sampling and stitch back after sampling that speed up inpainting 项目地址: https://gitcode.com/gh_mir…...

3分钟解锁WeMod高级功能:开源工具Wand-Enhancer完全指南

3分钟解锁WeMod高级功能&#xff1a;开源工具Wand-Enhancer完全指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否因为WeMod的高级功能需要付费…...

电源扰动测试与功率分析仪应用实践

1. 电源扰动测试的核心价值与行业需求在电力电子产品的研发验证阶段&#xff0c;电源扰动测试是评估设备可靠性的关键环节。我曾在某工业电源模块项目中&#xff0c;因忽视电源扰动测试导致产品在东南亚市场出现大规模故障——当地电网电压频繁跌落至170V&#xff0c;使得我们的…...