मेरे पास एक समूह प्रोजेक्ट है जहां हमें प्रदान किए गए इंटरफेस और गणनाओं का उपयोग करने के लिए मजबूर किया जाता है।एनम पर जावा स्विच जो समान इंटरफ़ेस लागू करता है
नीचे की तरह एक स्थिति की कल्पना कीजिए:
// marker interface
interface Request<T extends Response>{}
// marker interface
interface Response{}
enum TypeAction implements Request<SomeEnumClassThatImplementsResponse>{
TYPE1, TYPE2, TYPE3
}
enum OtherTypeAction implements Request<SomeOtherEnumClassThatImplementsResponse>{
OTHERTYPE1, OTHERTYPE2
}
एक अन्य कक्षा में, मैं इस तरह का अनुरोध की एक सूची है: List<Request> req = new LinkedList<Request>()
मुझे क्या करना चाहते हैं: बनाने के नीचे की तरह एक स्विच:
switch(a_request){
CASE TYPE1: ....
CASE TYPE2: ....
CASE TYPE3: ....
CASE TYPE2: ....
CASE OTHERTYPE1: ....
CASE OTHERTYPE2: ....
}
मैं इसे कैसे प्रबंधित कर सकता हूं?
महत्वपूर्ण नोट: मैं इंटरफेस और enums में विधियों को जोड़ नहीं सकता लेकिन मैं नए enums बना सकता हूं जो ऊपर देख सकते हैं कि इंटरफेस लागू करता है। मेरे पास दो enums नहीं होगा जो संभव हो तो वही काम करते हैं।
संपादित करें: यह संभव डुप्लिकेट उत्तर से अलग है कि मैं अनुरोध इंटरफ़ेस में कोई भी विधि नहीं जोड़ सकता और इसलिए मैं enum कक्षाओं में एक विधि को लागू नहीं कर सकता।
, आप अपने वास्तविक कोड के लिए switch
उपयोग नहीं कर सकते, लेकिन आप इस का उपयोग कर if
बयान कर सकते हैं पहले से
असल में, आप नहीं कर सकते। बस इसके बजाय 'if' का उपयोग करें। – shmosel
जावा में विभिन्न enum कक्षाओं के संयुक्त के लिए स्विच स्टेटमेंट का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/13958754/switch-statement-for-a-joint-of- अलग-enum-classes-in- जावा) – shmosel
@ माइकलकुरी आप कैसे एक enum "कार्यान्वित" करते हैं? आप केवल इंटरफेस को लागू कर सकते हैं। – glglgl