ก่อนอื่นฉันจะระบุว่าฉันคุ้นเคยกับ enums ใน C # มากขึ้นและดูเหมือนว่า enums ใน java นั้นค่อนข้างยุ่ง
อย่างที่คุณเห็นฉันกำลังพยายามใช้ switch statement @ enums ในตัวอย่างถัดไปของฉัน แต่ฉันได้รับข้อผิดพลาดเสมอไม่ว่าฉันจะทำอะไร
ข้อผิดพลาดที่ฉันได้รับคือ:
SomeClass.AnotherClass.MyEnum.VALUE_A
ต้องเปลี่ยนฉลากเคสที่ผ่านการรับรองด้วยค่าคงที่ enum ที่ไม่มีเงื่อนไขVALUE_A
สิ่งนี้คือฉันค่อนข้างเข้าใจถึงข้อผิดพลาด แต่ฉันไม่สามารถเขียน VALUE_A ได้เนื่องจาก enum ตั้งอยู่ในคลาสย่อยอื่น มีวิธีแก้ไขปัญหานี้หรือไม่? แล้วทำไมมันถึงเกิดขึ้นใน Java?
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
MyEnum enumExample //...
switch (enumExample) {
case AnotherClass.MyEnum.VALUE_A: { <-- error on this line
//..
break;
}
}
}
}
Enum
มีประโยชน์มากเมื่อคุณได้รับของพวกเขา - ไม่ยุ่งเลย พวกมันมีความยืดหยุ่นและใช้งานได้จริงมากกว่า enums ง่าย ๆ (เพียงแค่ค่าจำนวนเต็มที่มีป้ายกำกับ) ตามที่เห็นบนแพลตฟอร์มอื่น ๆ ดูออราเคิลกวดวิชา ค้นพบการเพิ่มประสิทธิภาพSet
/ การใช้งาน:Map
&EnumSet
EnumMap