আপনি আপনার এনামে একটি স্ট্যাটিক ম্যাপ ব্যবহার করতে পারেন যা স্ট্রিংসকে এনাম কনস্ট্যান্টের মানচিত্র করে। এটি একটি 'getEnum' স্ট্যাটিক পদ্ধতিতে ব্যবহার করুন। আপনি যখনই এর স্ট্রিংয়ের মান থেকে একটি পেতে চান প্রতিবার এনামগুলিতে পুনরাবৃত্তি করার প্রয়োজনটি এড়িয়ে যায়।
public enum RandomEnum {
StartHere("Start Here"),
StopHere("Stop Here");
private final String strVal;
private RandomEnum(String strVal) {
this.strVal = strVal;
}
public static RandomEnum getEnum(String strVal) {
if(!strValMap.containsKey(strVal)) {
throw new IllegalArgumentException("Unknown String Value: " + strVal);
}
return strValMap.get(strVal);
}
private static final Map<String, RandomEnum> strValMap;
static {
final Map<String, RandomEnum> tmpMap = Maps.newHashMap();
for(final RandomEnum en : RandomEnum.values()) {
tmpMap.put(en.strVal, en);
}
strValMap = ImmutableMap.copyOf(tmpMap);
}
@Override
public String toString() {
return strVal;
}
}
কেবল এনাম কনস্ট্যান্টের ঘোষণার নীচে মানচিত্রের স্থির সূচনা ঘটেছিল তা নিশ্চিত করুন।
বিটিডাব্লু - যে 'ইমটুটেবল ম্যাপ' টাইপটি গুগল পেয়ারা এপিআই থেকে আসে এবং আমি অবশ্যই এটির মতো ক্ষেত্রে এটির প্রস্তাব দিই।
সম্পাদনা - মতামত অনুযায়ী:
- এই সমাধানটি ধরে নিয়েছে যে প্রতিটি নির্ধারিত স্ট্রিংয়ের মানটি অনন্য এবং নাল নয়। এনামের স্রষ্টা এটি নিয়ন্ত্রণ করতে পারবেন এবং স্ট্রিংটি অনন্য ও নন এনাম মানের সাথে মিল রেখে দেওয়া হবে এটি নিরাপদ সীমাবদ্ধতার মতো বলে মনে হচ্ছে।
- প্রশ্নে জিজ্ঞাসা করা হিসাবে আমি 'টুস্ট্রিং ()' পদ্ধতি যুক্ত করেছি