প্রথমে আমি জানিয়ে দেব যে আমি সি # তে এনামগুলির সাথে অনেক বেশি পরিচিত এবং মনে হচ্ছে জাভাতে এনামগুলি বেশ গণ্ডগোল।
আপনি দেখতে পাচ্ছেন, আমি আমার পরবর্তী উদাহরণে @ এনামগুলিতে একটি সুইচ স্টেটমেন্ট ব্যবহার করার চেষ্টা করছি তবে আমি যা করছি তা সবসময়ই আমি একটি ত্রুটি পাই।
আমি প্রাপ্ত ত্রুটিটি হ'ল:
যোগ্য কেস লেবেল
SomeClass.AnotherClass.MyEnum.VALUE_A
অবশ্যই অযোগ্য এনাম ধ্রুবকের সাথে প্রতিস্থাপন করতে হবেVALUE_A
বিষয়টি হ'ল আমি ত্রুটিটি বেশ বুঝতে পেরেছি তবে এনামটি অন্য একটি সাব-ক্লাসে অবস্থিত হওয়ায় আমি কেবল VALUE_A লিখতে পারি না। এই সমস্যাটি সমাধান করার কোনও উপায় আছে কি? আর জাভাতে কেন হচ্ছে?
//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
হয় অত্যন্ত কুশলী একবার আপনি তাদের পেতে আসে - সব একটি জগাখিচুড়ি না। এগুলি অন্যান্য প্ল্যাটফর্মে যেমন দেখা যায় তেমন সহজ এনামগুলি (কেবলমাত্র একটি লেবেলযুক্ত পূর্ণসংখ্যার মান) এর চেয়ে অনেক বেশি নমনীয় এবং ব্যবহারিক। দেখুন ওরাকল টিউটোরিয়াল । অনুকূলিতSet
/Map
প্রয়োগগুলি আবিষ্কার করুন :EnumSet
&EnumMap
।