行业资讯 2025年08月6日
0 收藏 0 点赞 542 浏览 1147 个字
摘要 :

文章目录 特性说明 应用场景及示例 try-catch中 方法参数中 switch 表达式中 lambda 参数 总结 Java21新特性 – 未命名模式和变量,英文“Unnamed Patterns and ……




  • 特性说明
  • 应用场景及示例
    • try-catch中
    • 方法参数中
    • switch 表达式中
    • lambda 参数
  • 总结

Java21新特性 – 未命名模式和变量,英文“Unnamed Patterns and Variables”,该新特性的目的是提高代码的可读性和可维护性,目前是一个预览语言功能。

特性说明

未命名模式和变量新特性,即允许使用下划线 _ 来表示未命名模式或变量。这一特性旨在用 _ 标识无效或不需要使用的模式或变量,由于它们是没有名称,编译器将确保这样的变量确实未被使用。

应用场景及示例

try-catch中

下面通过一个例子来理解该特性,try-catch异常处理块相信大家都熟悉,以前我们是这样写的:

try {
  //...
} catch (Exception e) {
  System.out.println(\"出现异常\");
}

其中e 对当前的代码而言,就是未使用的变量,可以用_代替,如下:

try {
  //...
} catch (Exception _) {
  System.out.println(\"出现异常\");
}

简而言之,如果在代码中声明了一个变量,但又不打算使用它。这个时候,我们就可以将其替换为下划线字符_。这可以应用于各种场景,例如try-catch块、for循环等等。

方法参数中

比如使用在方法参数中,y坐标没有被使用,可以直接用_代替:

Object object = null;
if (object instanceof Points(int x, int _)) {

    System.out.println(\"object是一个坐标, x = \" + x);
}

switch 表达式中

原先我们可能这样写:

Object obj = null;
switch (obj) {
    case Integer i -> System.out.println(\"Integer类型\");
    default -> System.out.println(\"不是Integer类型\");
}

其中i变量没有用到,改写为:

Object obj = null;
switch (obj) {
    case Integer _ -> System.out.println(\"Integer类型\");
    default -> System.out.println(\"不是Integer类型\");
}

lambda 参数

类似如下:

stream.collect(Collectors.toMap(String::toUpperCase, _ -> \"NODATA\"))

总结

虽然Java21新特性 – 未命名模式和变量在表面上看似没什么大作用,甚至可有可无,但实际上很受欢迎,因为她能够通过清晰标识说明未被使用的变量,极大地提高代码的可读性,并避免潜在的错误。不过,目前还不能将 _ 用作重载方法的参数。以上就是Java21新特性 – 未命名模式和变量的全部内容。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9659.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号