java 17 - instanceof模式匹配
之前的instanceof常见用法,若是符合我们想要的类型,还需要进行强转再取值
private static void println(Object o) {
if (o instanceof Color) {
Color color = (Color) o;
System.out.println(color.getName());
}
}
1
2
3
4
5
6
2
3
4
5
6
java 17对instanceof做了增强,可以这样写
private static void println(Object o) {
if (o instanceof Color color) {
System.out.println(color.getName());
}
}
1
2
3
4
5
2
3
4
5
还可以直接在if块中对对象进行取值等操作
private static void println(Object o) {
if (o instanceof Color color && color.getCode() == Color.RED.getCode()) {
System.out.println(color.getName());
}
}
1
2
3
4
5
2
3
4
5
但是这里不能用||因为只有o instanceof Color color为true时才能赋值成功
上次更新: 2024/01/11 17:06:16