java - नाम स्ट्रिंग से मैं कैसे मान प्राप्त कर सकता हूँ




enums (2)

आप की तरह कुछ का उपयोग कर सकते हैं:

final Mobile mobile = Mobile.valueOf("Samsung");
final int price = mobile.showPrice();

(आपको public करने के लिए विधि showPrice() का दायरा बदलना होगा)

मुझे नाम स्ट्रिंग द्वारा enum मान प्राप्त करना चाहते हैं,

यह enum कोड: पैकेज अभ्यास;

enum Mobile {
  Samsung(400),
  Nokia(250),
  Motorola(325);

  int price;
  Mobile(int p) {
    price = p;
  }
  int showPrice() {
    return price;
  }
}

मैं क्लास का नाम और नाम स्ट्रिंग प्राप्त कर सकता हूं

Class enumClass = Class.forName("practice.Mobile");
String name = "Samsung";

मैं सैमसंग मूल्य 400 कैसे प्राप्त कर सकता हूँ केवल enumClass और नाम का उपयोग करें? बहुत बहुत धन्यवाद


जैसा कि आप जानते हैं, एक मान है, हर एन्यूम में विधि, जो केवल नाम को हल करके स्थिरता देता है (जब स्ट्रिंग अमान्य है तब अपवादों के बारे में पढ़ें।)

अब, चूंकि आपके एन्यूम में एक अन्य क्षेत्र स्थिरांक से जुड़ा हुआ है, इसलिए आपको उन फ़ील्ड्स से मिलान करके इसकी कीमत खोजनी होगी ...

यह एक संभावित समाधान का उपयोग कर रहा है

जावा 8

public enum ProgramOfStudy {
    ComputerScience("CS"), 
    AutomotiveComputerScience("ACS"), 
    BusinessInformatics("BI");

    public final String shortCut;

    ProgramOfStudy(String shortCut) {
        this.shortCut = shortCut;
    }

    public static ProgramOfStudy getByShortCut(String shortCut) {

        return Arrays.stream(ProgramOfStudy.values()).filter(v -> v.shortCut.equals(shortCut)).findAny().orElse(null);
    }
}

ताकि आप अपने "शॉर्टकट" की खोज करके "एन्मोल" को "हल" कर सकें

पसंद

System.out.println(ProgramOfStudy.getByShortCut("CS"));






enums