วิธีการเริ่มต้น Java 8 เป็นลักษณะ: ปลอดภัยหรือไม่
วิธีปฏิบัติที่ปลอดภัยในการใช้ วิธีการเริ่มต้นเป็นลักษณะเฉพาะของคนยากจนใน Java 8 หรือไม่? บางคนอ้างว่ามันอาจทำให้แพนด้าเสียใจหากคุณใช้มันเพียงเพื่อประโยชน์ของมันเพราะมันเจ๋ง แต่นั่นไม่ใช่ความตั้งใจของฉัน นอกจากนี้ยังมักจะได้รับการเตือนว่ามีการแนะนำวิธีการเริ่มต้นเพื่อสนับสนุนการพัฒนา API และความเข้ากันได้แบบย้อนหลังซึ่งเป็นความจริง แต่สิ่งนี้ไม่ได้ทำให้ผิดหรือบิดเบี้ยวในการใช้เป็นลักษณะเฉพาะ ฉันมีกรณีการใช้งานจริงดังต่อไปนี้ : public interface Loggable { default Logger logger() { return LoggerFactory.getLogger(this.getClass()); } } หรือบางทีกำหนดPeriodTrait: public interface PeriodeTrait { Date getStartDate(); Date getEndDate(); default isValid(Date atDate) { ... } } เป็นที่ยอมรับว่าสามารถใช้องค์ประกอบ (หรือแม้แต่คลาสตัวช่วย) แต่ดูเหมือนว่าจะดูละเอียดและรกกว่าและไม่อนุญาตให้ได้รับประโยชน์จากความหลากหลาย ดังนั้นการใช้วิธีการเริ่มต้นเป็นลักษณะพื้นฐานเป็นเรื่องปกติหรือไม่ปกติหรือไม่หรือฉันควรกังวลเกี่ยวกับผลข้างเคียงที่คาดไม่ถึง? หลายคำถามเกี่ยวกับ SO เกี่ยวข้องกับลักษณะ Java และ …