From 710c582142db23d11e44f1c59a9dbbc6b32c0aa6 Mon Sep 17 00:00:00 2001 From: guide Date: Thu, 14 Jan 2021 22:42:50 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E7=94=A8=E5=A5=BDJava=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E6=9E=9A=E4=B8=BE=E7=9C=9F=E7=9A=84=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E9=82=A3=E4=B9=88=E7=AE=80=E5=8D=95.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...51\202\243\344\271\210\347\256\200\345\215\225.md" | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git "a/docs/java/basis/\347\224\250\345\245\275Java\344\270\255\347\232\204\346\236\232\344\270\276\347\234\237\347\232\204\346\262\241\346\234\211\351\202\243\344\271\210\347\256\200\345\215\225.md" "b/docs/java/basis/\347\224\250\345\245\275Java\344\270\255\347\232\204\346\236\232\344\270\276\347\234\237\347\232\204\346\262\241\346\234\211\351\202\243\344\271\210\347\256\200\345\215\225.md" index e88f0b5c..23e47ef6 100644 --- "a/docs/java/basis/\347\224\250\345\245\275Java\344\270\255\347\232\204\346\236\232\344\270\276\347\234\237\347\232\204\346\262\241\346\234\211\351\202\243\344\271\210\347\256\200\345\215\225.md" +++ "b/docs/java/basis/\347\224\250\345\245\275Java\344\270\255\347\232\204\346\236\232\344\270\276\347\234\237\347\232\204\346\262\241\346\234\211\351\202\243\344\271\210\347\256\200\345\215\225.md" @@ -65,15 +65,16 @@ public class Pizza { 首先,让我们看一下以下代码段中的运行时安全性,其中 `==` 运算符用于比较状态,并且如果两个值均为null 都不会引发 NullPointerException。相反,如果使用equals方法,将抛出 NullPointerException: ```java -if(testPz.getStatus().equals(Pizza.PizzaStatus.DELIVERED)); -if(testPz.getStatus() == Pizza.PizzaStatus.DELIVERED); +Pizza.PizzaStatus pizza = null; +System.out.println(pizza.equals(Pizza.PizzaStatus.DELIVERED));//空指针异常 +System.out.println(pizza == Pizza.PizzaStatus.DELIVERED);//正常运行 ``` -对于编译时安全性,我们看另一个示例,两个不同枚举类型进行比较,使用equal方法比较结果确定为true,因为`getStatus`方法的枚举值与另一个类型枚举值一致,但逻辑上应该为false。这个问题可以使用==操作符避免。因为编译器会表示类型不兼容错误: +对于编译时安全性,我们看另一个示例,两个不同枚举类型进行比较: ```java -if(testPz.getStatus().equals(TestColor.GREEN)); -if(testPz.getStatus() == TestColor.GREEN); +if (Pizza.PizzaStatus.DELIVERED.equals(TestColor.GREEN)); // 编译正常 +if (Pizza.PizzaStatus.DELIVERED == TestColor.GREEN); // 编译失败,类型不匹配 ``` ## 4.在 switch 语句中使用枚举类型 -- GitLab