2010-08-14 12 views
5

क्या यूरोपीय देशों और भाषाओं को कहीं सूचीबद्ध करने के लिए कोई जावा (> 5) enum है? यदि कोई नहीं है, तो शायद मैं उन्हें इस सूची से लिखूंगा: http://www.nationsonline.org/oneworld/european_languages.htmक्या यूरोपीय देशों और भाषाओं का कोई जावा एनम है?

लेकिन अगर मैं उस बोझ से बच सकता हूं, तो यह बहुत अच्छा होगा!

पीएस .: अंत में, मैं geonames.org पर geoNames webservice का उपयोग करना शुरू कर रहा हूं। देशों के लिए मैं ग्रूवी में इस स्निपेट का उपयोग:

import org.geonames.* 

ToponymSearchCriteria sc = new ToponymSearchCriteria() 
sc.setContinentCode("eu") 
sc.setFeatureCode("PCLI") 
def res = WebService.search(sc) 
def countries = res.getToponyms().collect{it.countryName}.sort() 
+0

आप 50 वस्तुओं की गणना क्यों चाहते हैं? मुझे नहीं लगता कि इसे बनाए रखना या उपयोग करना आसान होगा। क्या आप एक enum चाहते हैं के लिए अपने कारणों का विस्तार कर सकते हैं? – Asaf

+3

उस क्षेत्र में एक 'जावा एनम' ** बहुत स्थिर ** प्रकृति का होगा। –

+0

आपकी अंतर्दृष्टि के लिए सभी लोगों का धन्यवाद ... मुझे लगता है कि मैं इसके लिए एक enum का उपयोग करने के विचार को भूल जाऊंगा और देश और उनकी भाषाओं को मेरे ऐप के डोमेन ऑब्जेक्ट्स के रूप में स्टोर कर दूंगा ... – Philippe

उत्तर

14

यह संभावना नहीं है कि पेशेवर ढांचे डिजाइनर, उनके पुस्तकालय में इस तरह के एक Enum शामिल होंगे क्योंकि देशों के सेट (और राजनीतिक रूप से मान्यता प्राप्त आधिकारिक भाषाओं में से सेट) परिवर्तन पुरे समय। आपको या तो पीछे की संगतता तोड़नी होगी, जिससे एनम को सॉफ़्टवेयर के लिए बेकार बना दिया जाता है, जिसे कुछ वर्षों से अधिक समय तक काम करना चाहिए, या आपको एनम में पुराने, अब तक मान्यता प्राप्त देशों और भाषाओं को रखना होगा ।

+0

मैं मानता हूं कि यह नहीं होना चाहिए एक पेशेवर ढांचा। मैं बस सोच रहा था कि अगर कोई, कहीं, अपने पुस्तकालयों में से एक है, तो बस ... – Philippe

+0

आप इस बिंदु को याद कर रहे हैं: enums हमेशा के लिए माना जाता है। देश बदलते हैं। –

+2

कुछ भी हमेशा के लिए नहीं है, दोस्त।क्या हमारे पास इस सौर मंडल में ग्रहों का एक पंख हो सकता है? जोशुआ ब्लोच के मुताबिक, हाँ - उसने अपनी पुस्तक में जावा के लिए सबसे अच्छी सलाह के रूप में बताया है। आप के अनुसार, Noooooo। – irreputable

1

कम से कम मैं उस यूआरएल से enum क्लास को स्वत: उत्पन्न कर दूंगा। आप HTML को पार्स कर सकते हैं, मान ला सकते हैं और एक जावा फ़ाइल लिख सकते हैं जो enum को परिभाषित करता है।

और जब भी इस यूआरएल की सामग्री बदल जाती है, तो आप स्वत: जनरेटर को फिर से शुरू कर सकते हैं और एक नई एनम कक्षा बना सकते हैं।

लेकिन ध्यान रखें - enum में प्रत्येक परिवर्तन के पास शेष कोड में त्रुटियों को पेश करने की क्षमता है।

7

शायद Locale.getISOCountries() और Locale.getISOLanguages() आपकी मदद करेगा।

+0

हे! वे इस दुनिया में बदलते देशों से कैसे सामना करते हैं ??? – Philippe

+0

java.util.Locale केवल आपको जावा ढांचे पर निर्भरता देगा, और जब देश बदलते हैं तो आपको अगली जावा मामूली रिलीज तक अपडेट नहीं मिलेगा। – homaxto

8

कुछ स्थिर डेटा स्टोर करने के लिए enum का उपयोग करने में कुछ भी गलत नहीं है। आप और क्या कर सकते हैं, इसे एक्सएमएल में स्टोर करें? यह कैसे बेहतर है? तो आपको फिर से कंपाइल करने की ज़रूरत नहीं है (जो एक परेशानी परेशानी है)? हम किस वर्ष में रह रहे हैं?

या इसे डेटाबेस में संग्रहीत करें; जब कोई नया देश पैदा होता है, तो हमें केवल डेटाबेस में एक पंक्ति डालने की आवश्यकता होती है, और एप्लिकेशन, स्मार्ट रूप से लिखित, इसे लोड करेगा और तुरंत इसका उपयोग करेगा - आवेदक को पुनरारंभ किए बिना! हुर्रे।

यूरोप के लिए भी, यह इतना अधिक है। मुझे यकीन है कि हम अपने आवेदनों को फिर से तैनात करने के मुकाबले देशों को अधिक बार नहीं बदलते हैं, जो किसी भी आधुनिक कंपनी में सप्ताह में कम से कम एक बार होता है।

कुछ भी हमेशा के लिए नहीं है, दोस्त। क्या हमारे पास इस सौर मंडल में ग्रहों का एक पंख हो सकता है? जोशुआ ब्लोच के मुताबिक, हाँ - उसने अपनी पुस्तक में जावा के लिए सबसे अच्छी सलाह के रूप में बताया है। आप के अनुसार, Noooooo।

अच्छा, कम से कम हम केवल नए ग्रहों को खोज सकते हैं, और हम पुराने ग्रहों (किसी भी निकट भविष्य में) को नष्ट नहीं कर सकते हैं, इसलिए एक ग्रह enum अनुकूलता के रूप में ठीक है, है ना?

प्लूटो को बताएं।

+1

टिप्पणी के लिए धन्यवाद, मुझे दुनिया में कम अकेला महसूस होता है "बिल्कुल सही डिजाइन निर्णय नहीं जो कि नौकरी कर सकते हैं" :-) – Philippe

संबंधित मुद्दे