Java 17 新特性:switch的模式匹配(Preview)

Java162

通过下面这个例子再回忆一下:

Map data = new HashMap<>();
data.put("key1", "aaa");
data.put("key2", 111);
if (data.get("key1") instanceof String s) {
  log.info(s);
}

上面这个场景里,Map中的Value值存在不同的类型,所以使用 instanceof来判断取出的value是什么类型,然后根据不同类型来进行处理。那么,接下来继续思考一个问题,如果这个Map中的Value可能有这几种类型:String、Integer、Double,我们需要对不同类型分别做不同的处理,是不是处理结构要这样写:

```java
if (data.get("key") instanceof String s) {
log.info(s);
} else if (data.get("key") instanceof Double s) {
log.info(s);
} else if (data.get("key") instanceof Integer s) {
log.info(s);

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长

相关文章
Java

Java使用 Thumbnails 压缩图片

业务:用户上传一张图片到文件站,需要返回原图url和缩略图url 处理思路: 因为上传图片方法返回url是单个上传,第一步先上传原图并返回url 处理缩略图并上传:拿到MultipartFile压缩成...
Java

操作线程的方法

操作线程的方法操作线程有很多方法,这些方法可以使线程从某一种状态过渡到另一种状态。 线程的休眠能控制线程行为的方法之一是调用sleep()方法,sleep()方法可以指定线程休眠的时间,线程休眠的时间...
Java

垃圾收集器

垃圾收集器 Serial:单线程收集器、在进行垃圾收集的时候需要暂停其他线程。优点:简单高效。适用于新生代。复制算法 SerialOld:是Serial收集器的l老年代版本,,也是一个单线程收集器,不...
Java

Java 15 新特性:隐藏类

什么是隐藏类 隐藏类是不能由其他类直接使用的类。引入隐藏类的主要目的是供框架使用,以便框架可以在运行时生成类,并通过反射间接使用它们。这可能有点抽象,不要紧,让我们用一个例子直观地理解它![En]A ...
Java

spring多数据源配置笔记

本文阐述使用多数据源的额场景,以及如何使用springboot的配置多数据源。 关于后者,主要是直接引用其它博文:https://blog.csdn.net/u012060033/article/de...
Java

DispatcherServlet 分发流程

0 太长不看版 HTTPServlet 的 Service 方法将请求按类进行分解 主要是根据HTTP方法的类型调用 doXXX 方法 GET 和 HEAD 方法需要对 if-modified-sin...
Java

cookie+拦截器实现不同角色对应不同的登录页

问题描述 问题描述:由于业务需求,系统中有 A角色需要看A登录页、B角色需要看B登录页面。注意是同一个系统哦。现在问题来了,有同学可能会回答了,这样就太简单了,A角色直接访问A登录页,B角色直接访问B...
Java

java的6种单例模式

第一种类型:Hungry Han类型:当你第一次访问这个对象时,它会像你以前没有吃过一样,所有的类都会被加载[En]The first type: Hungry Han type: when you ...
Java

Java学习 (25) 对象篇(05)抽象类&接口

抽象类 - 语法实例 注意点 具体讲解视频(狂神说Java) 接口 - 语法实例 具体讲解视频(狂神说Java) 抽象类 abstract修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就...
Java

Mysql必知必会总结

Mysql必知必会总结 基础概念 sql(Structured query language)结构化查询语言 不区分大小写,对所有SQL关键字使用大写,而对所有列和表名使用小写便于阅读 MySQL版本...
Java

搭建简单JavaWeb项目

参考:(17条消息) 手把手搭建一个完整的javaweb项目(适合新手)_心歌技术的博客-CSDN博客_javaweb项目完整案例 补充项目结构的细节,进行了一点修改,修改为学生信息管理系统 以下是搭...
Java

空对象要不得——记一次修改魔兽世界宏的感慨

昨天群里有个盗贼发了个宏 乍一看这个条件判断语句写的好像没有问题,语句的判断条件是: 1.当存在焦点,且按键模式为alt时,选取该焦点单位为目标释放致盲。 2.对鼠标指向的单位释放致盲。 3.否则释放...