尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

java21学习笔记-未命名的模式和变量 - 指南

java21学习笔记-未命名的模式和变量 - 指南
📅 发布时间:2026/6/20 4:54:42

java21学习笔记-未命名的模式和变量 - 指南

使用未命名变量和未命名模式增强 Java 编程语言,当需要变量声明或嵌套模式但从未使用时可以使用。两者都用下划线字符 _ 表示。

443:Unnamed Patterns and Variables (Preview)        java21
456:Unnamed Variables & Patterns                            java22

在java21中预览,在java22中正式发布。

使用下划线字符 _ 声明未命名的变量 (U+005F),以代替局部变量中局部变量的名称 declaration 语句,或 catch 子句中的异常参数,或 lambda 表达式中的 lambda 参数。

使用场景

块中的局部变量声明语句

record Point(int x, int y) { }
enum Color { RED, GREEN, BLUE }
record ColoredPoint(Point p, Color c) { }
public static void main(String[] args) {
var point = new Point(12, 34);
if (point instanceof Point(int x, _)) {
System.out.println((Point) point);
System.out.println(point.x);
System.out.println(x);
}
switch (point) {
case Point(int x, _) -> System.out.println("Hello, Point!" + x);
default -> System.out.println("default");
}
}

try-with-resources 语句的资源规范

String _age = "181";
String __ = "18";
String MAX_AGE = "118";
try (var _ = new FileOutputStream(new File("C:\\Users\\Administrator\\Desktop\\todo.md")) ) {    // Unnamed variable
//        try (var _ = new FileOutputStream(new File("")) ) {    // Unnamed variable
System.out.println(_age);
System.out.println(__);
System.out.println(MAX_AGE);
} catch (FileNotFoundException _) { // Unnamed variable
System.out.println("File not found");
} catch (IOException e) {
throw new RuntimeException(e);
}

基本 for 循环的标头

for (int i = 0, _ = sideEffect(i); i < a.size(); i++) { //但是不需要sideEffect复杂方法的返回值 Unnamed variable
System.out.println(a.get(i));
}
static int sideEffect(int i) {
System.out.println("这个方法很复杂,有一大堆逻辑需要执行");
return 0;
}

增强型 for 循环的标头

Map stringStringMap = Map.of("1", "a", "2", "b", "3", "c");
Set strings = stringStringMap.keySet();
System.out.println(count(strings));
static int count(Iterable orders) {
int total = 0;
for (String _ : orders)    // Unnamed variable
total++;
return total;
}

catch 块的异常参数

try (var _ = new FileOutputStream(new File("")) ) {    // Unnamed variable
System.out.println(_age);
System.out.println(__);
System.out.println(MAX_AGE);
} catch (FileNotFoundException _) { // Unnamed variable
System.out.println("File not found");
} catch (IOException e) {
throw new RuntimeException(e);
}

lambda 表达式的形式参数

Map stringStringMap = Map.of("1", "a", "2", "b", "3", "c");
Set strings = stringStringMap.keySet();
strings.forEach(_ ->{System.out.println("不适用循环中的这个变量");}); // Unnamed variable

总体的大概意思就是增强写法,把不用的变量或者模式直接用"_"代替。

相关新闻

  • 达梦数据库DM-查询指定模式下表的大小
  • 2025年十大主流项目管理工具评测:功能覆盖与成本效益分析
  • 分布式专题——19 Zookeeper分布式一致性协议ZAB源码剖析 - 指南

最新新闻

  • OpenWRT终极指南:iStore软件中心3大核心问题完整解决方案
  • 有向空间网络模型与兴趣聚类系数研究
  • ksnip终极指南:5分钟掌握这款强大的跨平台截图工具
  • Windows 11优化终极指南:如何用Win11Debloat免费提升系统性能51%
  • 终极Kubernetes证书监控工具:x509-certificate-exporter核心功能解析
  • 如何扩展LIRE:自定义图像特征提取器的开发指南 [特殊字符]

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号