ถ้าคุณดูใน enum api ที่วิธีการname()
มันบอกว่า:
ส่งคืนชื่อของค่าคงที่ enum นี้ตรงตามที่ประกาศไว้ในการประกาศ enum โปรแกรมเมอร์ส่วนใหญ่ควรใช้เมธอด toString ในการตั้งค่านี้เนื่องจากเมธอด toString อาจส่งคืนชื่อที่เป็นมิตรต่อผู้ใช้มากขึ้น วิธีนี้ออกแบบมาสำหรับใช้ในสถานการณ์พิเศษที่ความถูกต้องขึ้นอยู่กับการได้รับชื่อที่แน่นอนซึ่งจะไม่แตกต่างจากรุ่นสู่รุ่น
ทำไมจะดีกว่าการใช้งานtoString()
? ฉันหมายถึง toString อาจถูกเขียนทับเมื่อชื่อ () สุดท้ายแล้ว ดังนั้นหากคุณใช้ toString และมีคนแทนที่มันเพื่อส่งคืนค่าฮาร์ดโค้ดที่แอปพลิเคชันทั้งหมดของคุณหยุดทำงาน ... นอกจากนี้หากคุณค้นหาแหล่งที่มาเมธอด toString () จะคืนค่าอย่างแน่นอนและเป็นเพียงชื่อ มันเป็นสิ่งเดียวกัน
toString()
ใน enum ของคุณ แต่ไม่มีใครสามารถขยายและแทนที่ได้ คุณไม่สามารถขยาย enums ได้