19
Null check chain เทียบกับการจับ NullPointerException
บริการเว็บส่งคืน XML ขนาดใหญ่และฉันต้องการเข้าถึงช่องที่ซ้อนกันอย่างลึกซึ้ง ตัวอย่างเช่น: return wsObject.getFoo().getBar().getBaz().getInt() ปัญหาคือว่าgetFoo(), getBar(), อาจกลับมาทั้งหมดgetBaz()null อย่างไรก็ตามหากฉันตรวจสอบnullในทุกกรณีรหัสจะดูละเอียดมากและอ่านยาก ยิ่งไปกว่านั้นฉันอาจพลาดการตรวจสอบบางฟิลด์ if (wsObject.getFoo() == null) return -1; if (wsObject.getFoo().getBar() == null) return -1; // maybe also do something with wsObject.getFoo().getBar() if (wsObject.getFoo().getBar().getBaz() == null) return -1; return wsObject.getFoo().getBar().getBaz().getInt(); เป็นที่ยอมรับหรือไม่ที่จะเขียน try { return wsObject.getFoo().getBar().getBaz().getInt(); } catch (NullPointerException ignored) { return -1; …