จะมีเหตุผล / สถานการณ์ใดบ้างที่ฉันควรใช้ object == null ทับ Objects.isNull () ในคำสั่ง if ?
ใช่เหตุผลหนึ่งคือเพื่อให้รหัสง่าย คำสั่ง ภายในถ้าobject == nullชัดเจนและเป็นที่รู้จักกันดี ไม่สามารถนำไปสู่พฤติกรรมที่ไม่เหมาะสมใด ๆ เช่นมีการพิมพ์ผิด
  ความเข้าใจของฉันคือ Objects.isNull () จะลบโอกาสในการกำหนดค่าว่างให้กับวัตถุโดยไม่ได้ตั้งใจโดยการละเว้น = ที่สอง
หากมีการif (object = null) {}มีการละเว้น =มันจะไม่รวบรวมหรือมันจะสร้างคำเตือนในกรณีของBooleanวัตถุ! ที่จริงมีเหตุผลที่จะใช้ไม่มีObjects.isNull(object)มากกว่าobject == nullภายในถ้ามีคำสั่ง นี่คือสองรูปแบบเคียงข้างกัน:
if (object == null) {
}
if (Objects.isNull(object)) {
}
  Objects.isNull () ควร จำกัด เฉพาะ Predicates หรือไม่?
อาจกล่าวได้ว่าใช่มัน จำกัด เฉพาะ Predicates เท่านั้นแม้ว่าจะไม่มีอุปสรรคทางเทคนิคในการใช้ไฟล์ Objects.isNull()ทุกที่
จากpublic static boolean isNull(Object obj)javadoc ของวิธีการ:
  วิธีนี้มีอยู่เพื่อใช้เป็น java.util.function.Predicate, filter (Objects :: isNull)
ดังนั้นหากคุณใช้วิธีนี้ไม่ใช่เพรดิเคตคุณกำลังใช้นิพจน์ที่ซับซ้อนและยุ่งยากกว่าเมื่อเทียบกับแบบง่ายobject == nullมูลฐานคุณเป็นจริงโดยใช้ความซับซ้อนมากขึ้นและการแสดงออกยุ่งยากเมื่อเทียบกับที่เรียบง่าย
นี่คือตัวอย่างเพื่อเปรียบเทียบประโยชน์ของ Objects.isNull(object)
List<String> list = Arrays.asList("a", "b", null, "c", null);
long countNullsWithPredicate = list.stream().filter(Objects::isNull).count();
long countNullsWithLambda = list.stream().filter(object -> object == null).count();
long countNullsWithAnonymous = list.stream().filter(new Predicate<Object>() {
    @Override
    public boolean test(Object obj) {
        return obj == null;
    }
}).count();
     
              
if(null == variable)อย่างสม่ำเสมอ ...