Java14新特性:增强 instanceOf 类型推断


Java中instanceof是用来判断对象的类型是否是目标类型。如果是返回true,不是返回false。

在Java 14之前,示例如下:

if (obj instanceof String) {
    String str = (String) obj; 
    str.contains("A") ;
}else{
     str = "";
}

obj instanceof String已经为true,在后面的代码里,我们还是要清晰的定义一个新变量,并且要做类型强转换。

Java 14对instanceof引入了模式匹配,修改后的代码如下:

if (!(obj instanceof String str)) {
     str.contains("A") ;
} else {
     str = "";
}

定义了str,就可以在后续代码使用,不在需要显式做类型转换了。

还能继续加入判断条件

if (obj instanceof String str && str.contains("A")) {
            System.out.println(str);
        }

if (obj instanceof String str || str.contains("A")) {
            System.out.println(str);
        }

文章作者: 少年闰土
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 少年闰土 !
评论
 上一篇
Java14新特性:字符串块 Java14新特性:字符串块
java1之前写字符串拼接 String str = "<html>" + "<header>" + "</header>" +
2020-03-15
下一篇 
Java14新特性:增强NPE NullPointerException 错误推断 Java14新特性:增强NPE NullPointerException 错误推断
改进 NullPointerExceptions,通过准确描述哪些变量为 null 来提高 JVM 生成的异常的可用性。该提案的作者希望为开发人员和支持人员提供有关程序为何异常终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来
2020-03-13
  目录