นำตัวอย่างโค้ดสองตัวอย่าง:
if(optional.isPresent()) {
    //do your thing
}
if(variable != null) {
    //do your thing
}
เท่าที่ฉันสามารถบอกความแตกต่างที่ชัดเจนที่สุดคือตัวเลือกต้องสร้างวัตถุเพิ่มเติม
อย่างไรก็ตามหลายคนเริ่มใช้ตัวเลือกอย่างรวดเร็ว ข้อดีของการใช้ตัวเลือกกับการตรวจสอบค่า Null คืออะไร?
ifงบsoooooทศวรรษที่ผ่านมาและทุกคนโดยใช้แนวคิด monad และ lambdas ในขณะนี้
                if(x.isPresent) fails_on_null(x.get)คุณออกจากระบบประเภทและต้องให้การรับประกันว่ารหัสจะไม่ทำลาย "ในหัวของคุณ" ในระยะ (สั้นยอมรับ) ระหว่างเงื่อนไขและการเรียกใช้ฟังก์ชั่น ในoptional.ifPresent(fails_on_null)ระบบประเภททำให้การรับประกันนี้สำหรับคุณและคุณไม่ต้องกังวล
                Optional.ifPresent(และการสร้าง Java อื่น ๆ ) คือคุณสามารถแก้ไขตัวแปรสุดท้ายได้อย่างมีประสิทธิภาพเท่านั้นและไม่สามารถโยนข้อยกเว้นที่เลือก นั่นเป็นเหตุผลมากพอที่จะหลีกเลี่ยงได้ifPresentอย่างน่าเสียดาย