乐趣区

关于vue3:基于-Vue3-打造前台中台通用提效解决方案网盘链接

download:基于 Vue3 打造前台 + 中台通用提效解决方案(网盘链接)

Java 16 新个性:instanceof 增强

instanceof 这个关键词,次要用来判断某个对象是不是某个类的实例。

比如,有时候咱们要处理一个类似这样的数据集:

Map<String, Object> data = new HashMap<>();
data.put(“key1”, “aaa”);
data.put(“key2”, 111);
复制代码
这个 Map 中的 Value 值因为可能是不同的对象,所以定义的是 Object。这个时候,当咱们 get 进去的时候,就需要去判断和转换之后再去处理。

比如,咱们取出 key1 的 value,而后截取一段字符串的操作,就需要这样写:

Object value =data.get(“key1”);
if (value instanceof String) {
String s = (String) value;
System.out.println(s.substring(1));
}
复制代码
先判断获取的 value 是否是 String,再做强制类型转换,而后再对字符串进行操作。这是传统的写法,而在 Java 16 的增强之后,对于 instanceof 的判断以及类型转换可能合二为一了,所以改进后的写法可能如下:

Object value =data.get(“key1”);
if (value instanceof String s) {
System.out.println(s.substring(1));
}
复制代码
是不是简略不少呢?如果没用过的话,连忙操作试试看吧!

Tips:该功能经历了 2 个 Preview 版本(JDK 14 中的 JEP 305、JDK 15 中的 JEP 375),最终定稿于 JDK 16 中的 JEP 394。

退出移动版