ฉันเคยกำหนดชุดของค่าคงที่ที่เกี่ยวข้องเช่นBundle
คีย์ด้วยกันในอินเทอร์เฟซดังต่อไปนี้:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
นี่เป็นวิธีที่ดีกว่าในการจัดกลุ่มค่าคงที่ที่เกี่ยวข้องเข้าด้วยกันและใช้โดยการนำเข้าแบบคงที่ (ไม่ใช่การใช้งาน) ฉันรู้ว่าAndroid
กรอบการทำงานยังใช้ค่าคงที่ในลักษณะเดียวกันเช่น,Toast.LENTH_LONG
View.GONE
อย่างไรก็ตามฉันมักรู้สึกว่าJava Enums
วิธีนี้ให้วิธีที่ดีกว่าและมีประสิทธิภาพมากในการแสดงค่าคงที่
แต่มีปัญหาในการใช้งานenums
บนAndroid
?
ด้วยการค้นคว้าเล็กน้อยฉันจบลงด้วยความสับสน จากคำถามนี้
"หลีกเลี่ยง Enums ในที่ที่คุณต้องการเพียง Ints" ถูกลบออกจากเคล็ดลับประสิทธิภาพของ Android เป็นที่ชัดเจนว่าGoogle
ได้ลบ"หลีกเลี่ยง enums"ออกจากเคล็ดลับการปฏิบัติงาน แต่จากเอกสารการฝึกอบรมอย่างเป็นทางการโปรดทราบส่วนค่าใช้จ่ายของหน่วยความจำจะระบุไว้อย่างชัดเจนว่า: "Enums มักต้องการหน่วยความจำมากกว่าค่าคงที่มากกว่าสองเท่า คุณควรหลีกเลี่ยงการใช้ enums บน Android อย่างเคร่งครัด "สิ่งนี้ยังใช้ได้ดีอยู่หรือไม่ (พูดในJava
เวอร์ชันหลัง 1.6)
อีกปัญหาหนึ่งที่ฉันสังเกตเห็นคือการส่งenums
ข้ามintents
โดยใช้Bundle
ฉันควรส่งโดยการทำให้เป็นอนุกรม (เช่นputSerializable()
ฉันคิดว่าการดำเนินการที่มีราคาแพงเมื่อเทียบกับputString()
วิธีดั้งเดิมแม้ว่าจะenums
ให้ฟรี)
ใครช่วยอธิบายได้Android
ไหมว่าวิธีใดเป็นวิธีที่ดีที่สุดในการแสดงความคิดเห็น ฉันควรจะหลีกเลี่ยงการใช้อย่างเคร่งครัดenums
ในAndroid
?