স্ট্রিংটিকে সমমূল্য এনাম মানের রূপান্তর করুন


102

জাভা ব্যবহার করে কি আমার পক্ষে একটিকে Stringসমমানের মানতে রূপান্তর করা সম্ভব Enumeration?

আমি অবশ্যই এটি একটি বৃহত if-elseবিবৃতি দিয়ে করতে পারি , তবে আমি যদি সম্ভব হয় তবে এড়াতে চাই।

এই ডকুমেন্টেশন দেওয়া:

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Eeumeration.html

আমি খুব বেশি আশাবাদী নই যে এটি আইএফএস বা কেস স্টেটমেন্ট ছাড়া সম্ভব।

উত্তর:


225

আশা করি আপনি বুঝতে পেরেছেন, java.util.Enumerationজাভা 1.5 এনাম ধরণের থেকে আলাদা ।

আপনি কেবল YourEnum.valueOf("String")সমান এনাম টাইপ পেতে ব্যবহার করতে পারেন।

এইভাবে যদি আপনার এনামটিকে সংজ্ঞায়িত করা হয়:

public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
    THURSDAY, FRIDAY, SATURDAY
}

আপনি এটি করতে পারেন:

String day = "SUNDAY";

Day dayEnum = Day.valueOf(day);

হ্যাঁ ধন্যবাদ এই সবেমাত্র এই ডাউনলোডটি
অঙ্কুর

18

ধরে নিই যে আপনি জাভা 5 এনাম ব্যবহার করেছেন (যা আপনি পুরানো Enumerationশ্রেণীর উল্লেখ করার পরে এতটা নির্দিষ্ট নয় ), আপনি সাবক্লাসের valueOfপদ্ধতিটি ব্যবহার করতে পারেন java.lang.Enum:

MyEnum e = MyEnum.valueOf("ONE_OF_CONSTANTS");

8

valueOf(String)প্রতিটি জন্য সংজ্ঞায়িত স্থির পদ্ধতি ব্যবহার করুনenum

উদাহরণস্বরূপ আপনার যদি আপনি enum MyEnumবলতে পারেনMyEnum.valueOf("foo")


4

আমি এটি বুঝতে না পেরে নিজের সমাধানটি অতিরিক্ত ইঞ্জিনিয়ারিং করেছি Type.valueOf("enum string") বাস্তবে অস্তিত্ব ।

আমার ধারণা এটি আরও দানাদার নিয়ন্ত্রণ দেয় তবে আমি নিশ্চিত নই যে এটি সত্যই প্রয়োজনীয়।

public enum Type {
    DEBIT,
    CREDIT;

    public static Map<String, Type> typeMapping = Maps.newHashMap();
    static {
        typeMapping.put(DEBIT.name(), DEBIT);
        typeMapping.put(CREDIT.name(), CREDIT);
    }

    public static Type getType(String typeName) {
        if (typeMapping.get(typeName) == null) {
            throw new RuntimeException(String.format("There is no Type mapping with name (%s)"));
        }
        return typeMapping.get(typeName);
    }
}

আমি অনুমান করি যে আপনি বিনিময় IllegalArgumentExceptionকরছেন RuntimeException(বা আপনি যে কোনও ব্যতিক্রম নিক্ষেপ করতে চান) যা সম্ভাব্য কোড সাফ করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.