Java 14:instanceof的模式匹配
Java 14引入了pattern Matching for instanceof (另一种预览语言功能) ,从而消除了在使用instanceof
时进行强制转换的需要。 例如,考虑以下代码:
if (obj instanceof String) { String s = (String) obj; System.out.println(s.length()); }
该代码现在可以重写为:
if (obj instanceof String s) { System.out.println(s.length()); }
如上所示, instanceof
运算符现在使用“绑定变量”,并且不再需要强制转换为String
。 如果obj
是String
的实例,则将其强制转换为String
并分配给绑定变量s
。 绑定变量仅在if语句的true块的范围内。
特别是,此功能使equals
方法更加简洁,如下例所示:
@Override public boolean equals(Object obj) { return this == obj || (obj Person other) && other.name.equals(name); (obj instanceof Person other) && other.name.equals(name); }
此功能是模式匹配的一个示例,该模式已经在许多其他编程语言中提供,并且允许我们有条件地从对象中提取组件。 它为将来更广泛的模式匹配打开了大门,我对此感到非常兴奋!
翻译自: https://www.javacodegeeks.com/2020/04/java-14-pattern-matching-for-instanceof.html
Java 14:instanceof的模式匹配相关推荐
- java 8 新功能详解_Java 8和Java 14之间的新功能
java 8 新功能详解 从版本9开始,Java每6个月就有一次新功能,因此很难跟踪这些新更改. 互联网上的大多数信息都描述了最近2个Java版本之间的变化. 但是,如果您的情况与我相似,则说明您使用 ...
- Java 8和Java 14之间的新功能
从版本9开始,Java每6个月就会有新功能,因此很难跟踪这些新更改. 互联网上的大多数信息都描述了最近两个Java版本之间的变化. 但是,如果您的情况与我相似,则说明您使用的不是Java的最新版本,而 ...
- 你好,了解一下Java 14带来的一系列新功能
Java 14带来的一系列新功能 Java 14包含比前两个发行版更多的新功能-其中大多数旨在简化编码. 劳尔·加布里埃尔·乌尔玛(Raoul-Gabriel Urma) 下载本文的PDF Java ...
- Java 14:JDK 14进入GA时的所有新功能
是的,六个月过去了这么快,现在到了,Java 14的发布即将到来. 我们一直在跟踪新JDK在过去半年中的进展,您可以在此处找到摘要的所有功能. 但是,如果您想直接进入,可以在此处找到JDK 14二进制 ...
- JDK/Java 14 正式发布!然而我还在用 Java 8...
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...
- 甲骨文正式发布Java 14(Oracle JDK 14)
甲骨文两年来,每六个月如约发布新版本的Java,Oracle JDK 14为开发人员带来创新功能和新特性预览.Oracle JDK 14增加了一些新特性来提高开发人员工作效率,这些新特性包括:对swi ...
- JDK 14 / JEP 305模式匹配“ Smart Casts”实例
我通常将Java代码中instanceof运算符的存在视为" 红色标志 ",这意味着在某些情况下使用instanceof不一定是错误的,但是使用它有时表示可以以一种更干净的方式解决 ...
- Java 14的新功能
2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧版本,因为它具有向 ...
- 甲骨文Java 14来啦!
甲骨文两年来,每六个月如约发布新版本的Java,Oracle JDK 14为开发人员带来创新功能和新特性预览.Oracle JDK 14增加了一些新特性来提高开发人员工作效率,这些新特性包括:对swi ...
最新文章
- 手机中的图片怎么压缩大小?
- 静态方法mock 和verify
- 横向循环焦点图片展示_多光子显微镜成像技术之十二:多光子显微镜中的焦点深度扩展方法...
- 学python找什么工作-学Python能找到什么工作?这4种工作最热门!
- 你真的了解过Lucene吗?
- 与你同行,才能无障碍
- zookeeper在Windows底下的安装和使用
- 用遗传算法求3维函数 的最小值_遗传算法可视化项目(4):遗传算法
- Windows VS Linux,Linux或将成为最终赢家?
- oracle 数据分列,如何使用Excel把有规律地txt文本数据分列
- 使电动机反转的matlab仿真图,基于MATLAB的电机仿真研究
- k8s service nodeport
- NAT类型与P2P游戏
- 打开Excel2010时提示错误:向程序发送命令时出现问题!
- 小米android6.01 root,小米 小米6(安卓8.0)获取Root权限服务含精简系统方案
- 动森服务器维护什么时候好,仙境传说RO爱如初见7月1日服务器停机维护
- 顺舟智能获中国电信智慧家庭产业联盟“智慧家庭创新合作奖”
- 惊闻杭州业主不满楼盘降价大闹售楼处
- 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程
- jiffies:内核中的时间观念
热门文章
- USACO2.2【统计,dp,模拟,位运算】
- P1306-斐波那契公约数【矩阵乘法,数论】
- C++STL(set……)
- Codeforces Round #661 (Div. 3)
- Gym102059A Coloring Roads
- 12、oracle数据库下的存储过程和函数
- Spark Streaming之统计socket单词数
- 服务器性能指标(一)——负载(Load)分析及问题排查
- 单例模式——Java
- python中的数组按顺序切片_python切片(获取一个子列表(数组))详解