Java 新特性 - Java 文本块、Record 类、instanceof 模式匹配、Switch 表达式增强
一、Java 文本块Java 15 正式1、基本介绍文本块适用于多行字符串2、演示Stringjson { name: Tom, age: 27 } ;System.out.println(json);# 输出结果 { name: Tom, age: 27 }二、Record 类Java 16 正式1、基本介绍自动生成构造器、getter 方法、equals 方法、hashCode 方法、toString 方法2、演示1RecordPerson.javapublicrecordPerson(Stringname,intage,Stringemail){// 添加紧凑构造器做参数校验publicPerson{if(age0){thrownewIllegalArgumentException(年龄不能为负数);}if(emailnull||!email.contains()){thrownewIllegalArgumentException(邮箱格式无效);}}publicStringgetGreeting(){returnHello, name;}}2TestPersonpnewPerson(李四,25,lisiexample.com);System.out.println(p);System.out.println(p.name());System.out.println(p.age());System.out.println(p.getGreeting());# 输出结果 Person[name李四, age25, emaillisiexample.com] 李四 25 Hello, 李四Personp1newPerson(李四,25,lisiexample.com);Personp2newPerson(李四,25,lisiexample.com);System.out.println(p1.equals(p2));# 输出结果 truePersonpnewPerson(李四,-25,lisiexample.com);# 输出结果 Exception in thread main java.lang.IllegalArgumentException: 年龄不能为负数PersonpnewPerson(李四,25,lisiexample.com);# 输出结果 Exception in thread main java.lang.IllegalArgumentException: 邮箱格式无效三、instanceof 模式匹配Java 16 正式1、基本介绍类型判断后直接赋值省去强制转换2、演示旧写法需要显式强转ObjectobjHello Java;if(objinstanceofString){Strings(String)obj;System.out.println(s.length());}# 输出结果 10新模式匹配同时完成判断和赋值可以直接使用ObjectobjHello Java;if(objinstanceofStrings){System.out.println(s.length());}# 输出结果 10还可以配合使用但不能配合||使用ObjectobjHello Java;if(objinstanceofStringss.length()5){System.out.println(字符串长度大于 5: s);}# 输出结果 字符串长度大于 5: Hello Java对集合中的元素使用ListObjectlistList.of(Java,123,Record);for(Objectitem:list){if(iteminstanceofStringstr){System.out.println(字符串: str);}elseif(iteminstanceofIntegernum){System.out.println(数字: num);}}# 输出结果 字符串: Java 数字: 123 字符串: Record四、Switch 表达式增强Java 14 正式1、基本介绍作为表达式返回值配合-和 yield代码更简洁2、演示旧写法StringdayMONDAY;intworkHours;switch(day){caseMONDAY:caseTUESDAY:caseWEDNESDAY:caseTHURSDAY:caseFRIDAY:workHours8;break;caseSATURDAY:workHours5;break;caseSUNDAY:workHours0;break;default:thrownewIllegalArgumentException(无效的星期day);}System.out.println(工作时长workHours);StringdayMONDAY;Stringfeeling;switch(day){caseMONDAY:System.out.println(周一综合征);feeling疲惫;break;caseFRIDAY:System.out.println(终于周五了);feeling兴奋;break;default:feeling普通;break;}System.out.println(心情feeling);新写法StringdayMONDAY;intworkHoursswitch(day){caseMONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY-8;caseSATURDAY-5;caseSUNDAY-0;default-thrownewIllegalArgumentException(无效的星期day);};System.out.println(工作时长workHours);StringdayMONDAY;Stringfeelingswitch(day){caseMONDAY-{System.out.println(周一综合征);yield疲惫;}caseFRIDAY-{System.out.println(终于周五了);yield兴奋;}default-普通;};System.out.println(心情feeling);

相关新闻

Linux下固定USB串口设备名:udev规则实战指南

Linux下固定USB串口设备名:udev规则实战指南

1. 项目概述:为什么需要固定USB串口设备名?如果你在Linux下玩过单片机、调试过路由器,或者搞过任何需要连接串口设备的活儿,肯定遇到过这个烦人的问题:今天插上USB转串口线,设备叫/dev/ttyUSB0,…

2026/8/4 7:09:53 阅读更多 →
Python包管理进阶:掌握pip指定安装路径的3种核心方法与实战场景

Python包管理进阶:掌握pip指定安装路径的3种核心方法与实战场景

1. 项目概述:为什么需要指定pip安装路径?在Python开发中,我们经常会遇到一个看似简单却影响深远的问题:用pip install安装的包,到底被放到了哪里?默认情况下,pip会将包安装到Python解释器对应的…

2026/8/4 7:09:53 阅读更多 →
ADSP-BF532SBBCZ400,400MHz 低功耗工业 Blackfin DSP

ADSP-BF532SBBCZ400,400MHz 低功耗工业 Blackfin DSP

简介ADSP-BF532SBBCZ400 是 ADI Blackfin 系列 400MHz 定点嵌入式 DSP,采用 160 球 CSP_BGA 小型封装,融合 DSP 高速运算与 MCU 控制能力,是兼顾功耗、成本与实时性能的成熟处理芯片。电气层面,该芯片采用三独立供电架构&#xff…

2026/8/4 7:09:53 阅读更多 →

最新新闻

2026年最新版Python安装教程

2026年最新版Python安装教程

通过迅雷网盘分享python安装包文件:python-windows 链接:https://pan.xunlei.com/s/VOz1Ql-rKjgXXPZ4hqqtcEXGA1?pwd3576#网盘里有多个版本的python安装包(Windows操作系统),各位选择其中一个版本下载安装即可&#x…

2026/8/4 23:51:40 阅读更多 →
鸿蒙 6.1 API 23 开发坑系列篇 1:ArkUI.modifier 装饰器坑——attributeModifier + AttributeModifier<T> 状态化节点修改器根因

鸿蒙 6.1 API 23 开发坑系列篇 1:ArkUI.modifier 装饰器坑——attributeModifier + AttributeModifier<T> 状态化节点修改器根因

本文是「鸿蒙 6.1 API 23 开发坑系列」第 1 篇(ArkUI 桶第 1 篇)。鸿蒙 6.1 API 23 共 397 个 API namespace,本系列按类别分桶写几百篇,每篇一个具体 API namespace 真名坑。本篇讲 ohos.arkui.modifier namespace(AP…

2026/8/4 23:51:40 阅读更多 →
终极指南:轻松解决Windows软件依赖问题的Visual C++运行库合集

终极指南:轻松解决Windows软件依赖问题的Visual C++运行库合集

终极指南:轻松解决Windows软件依赖问题的Visual C运行库合集 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾遇到过游戏无法启动、专业软件闪…

2026/8/4 23:51:40 阅读更多 →
JSON.lua 架构设计与性能优化深度解析

JSON.lua 架构设计与性能优化深度解析

JSON.lua 架构设计与性能优化深度解析 【免费下载链接】json.lua A lightweight JSON library for Lua 项目地址: https://gitcode.com/gh_mirrors/js/json.lua JSON.lua 是一款专为Lua环境设计的轻量级JSON解析库,以其纯Lua实现、卓越性能和极致精简的设计理…

2026/8/4 23:51:40 阅读更多 →
构建高弹性系统:Architectural Metapatterns中的微内核与插件架构实践

构建高弹性系统:Architectural Metapatterns中的微内核与插件架构实践

构建高弹性系统:Architectural Metapatterns中的微内核与插件架构实践 【免费下载链接】metapatterns Architectural Metapatterns book and wiki 项目地址: https://gitcode.com/gh_mirrors/publications13/metapatterns 在软件开发领域,构建具有…

2026/8/4 23:51:40 阅读更多 →
UE5第三人称摄像机平滑跟随系统:5分钟蓝图实现《原神》式手感

UE5第三人称摄像机平滑跟随系统:5分钟蓝图实现《原神》式手感

1. 项目概述:为什么《原神》式视角控制值得研究在虚幻引擎5(UE5)里做角色移动和摄像机控制,几乎是每个项目起步时都会遇到的“第一道坎”。很多新手,包括几年前的我,都是从引擎自带的第三人称模板开始&…

2026/8/4 23:50:39 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →