2010-08-14 22 views
5

Có bất kỳ java (> 5) enum nào để liệt kê các quốc gia và ngôn ngữ châu Âu ở đâu đó không? Nếu không có, có thể tôi sẽ viết chúng từ danh sách này: http://www.nationsonline.org/oneworld/european_languages.htmCó bất kỳ java Enum của các nước châu Âu và các ngôn ngữ?

Nhưng nếu tôi có thể tránh gánh nặng đó, điều đó thật tuyệt!

P.S .: Cuối cùng, tôi bắt đầu sử dụng dịch vụ web geoNames tại geonames.org. Đối với các nước tôi sử dụng đoạn mã này trong Groovy:

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

tại sao bạn muốn đếm 50 đối tượng? Tôi không nghĩ rằng nó sẽ dễ dàng để duy trì hoặc sử dụng. Bạn có thể nêu chi tiết lý do của bạn để muốn một enum? – Asaf

+3

Một 'Java Enum' trong trường đó sẽ có tính chất ** quá tĩnh **. –

+0

Cảm ơn tất cả các bạn vì những hiểu biết của bạn ... Tôi nghĩ rằng tôi sẽ quên ý tưởng sử dụng một enum cho điều này và sẽ lưu trữ các quốc gia và ngôn ngữ của họ như là đối tượng miền của ứng dụng của tôi ... – Philippe

Trả lời

14

Nó không chắc rằng các nhà thiết kế khuôn khổ chuyên nghiệp sẽ bao gồm như một Enum trong thư viện của họ, bởi vì các thiết lập của các quốc gia (và tập các ngôn ngữ chính thức về mặt chính trị được công nhận) thay đổi mọi lúc. Bạn sẽ phải phá vỡ tính tương thích ngược, làm cho Enum trở nên vô dụng đối với phần mềm được cho là hoạt động lâu hơn vài năm, hoặc bạn phải giữ các quốc gia và ngôn ngữ cũ, không còn được công nhận trong Enum .

+0

Tôi đồng ý rằng điều này không nên ở một khung chuyên nghiệp. Tôi chỉ tự hỏi nếu có ai đó, ở đâu đó, có một trong những người trong thư viện của riêng mình, chỉ để bắt đầu với ... – Philippe

+0

bạn đang thiếu điểm: enums được cho là mãi mãi. các nước thay đổi. –

+2

Không có gì là mãi mãi, dude.Chúng ta có thể có một enum của các hành tinh trong hệ mặt trời này? Theo Joshua Bloch, vâng - anh ta có nó trong cuốn sách của anh ta là lời khuyên tốt nhất cho Java. Theo các bạn, noooooo. – irreputable

1

Ít nhất tôi muốn tự động tạo lớp enum từ URL đó. Bạn có thể phân tích cú pháp HTML, tìm nạp các giá trị và viết một tệp java định nghĩa enum.

Và bất cứ khi nào nội dung tại URL này thay đổi, bạn có thể chạy lại trình tạo tự động và tạo một lớp enum mới.

Nhưng lưu ý - mọi thay đổi trong enum đều có khả năng giới thiệu các lỗi trong phần còn lại của mã.

7

Có thể Locale.getISOCountries()Locale.getISOLanguages() sẽ giúp bạn.

+0

Xin chào! Làm thế nào để họ đối phó với các nước đang thay đổi trong thế giới này ??? – Philippe

+0

java.util.Locale sẽ chỉ cung cấp cho bạn sự phụ thuộc vào khung java và khi các quốc gia thay đổi, bạn sẽ không nhận được bản cập nhật cho đến khi bản phát hành nhỏ thứ hai của java tiếp theo. – homaxto

8

Không có gì sai khi sử dụng enum để lưu trữ một số dữ liệu khá ổn định. Bạn có thể làm gì khác, lưu trữ nó trong XML? Làm thế nào là tốt hơn? Vì vậy, bạn không cần phải biên dịch lại (đó là một rắc rối huuuge)? Chúng ta đang sống trong năm nào?

Hoặc lưu trữ trong cơ sở dữ liệu; khi một quốc gia mới được sinh ra, chúng ta chỉ cần chèn một hàng vào cơ sở dữ liệu và ứng dụng, được viết thông minh, sẽ tải nó và sử dụng nó ngay lập tức - mà không cần khởi động lại ứng dụng! Tiếng hoan hô.

Ngay cả đối với châu Âu, điều đó là quá mức cần thiết. Tôi chắc chắn rằng họ không thay đổi quốc gia thường xuyên hơn chúng tôi tái triển khai các ứng dụng của chúng tôi, trong đó, trong bất kỳ công ty hiện đại nào, sẽ xảy ra ít nhất một lần một tuần.

Không có gì là mãi mãi, dude. Chúng ta có thể có một enum của các hành tinh trong hệ mặt trời này? Theo Joshua Bloch, vâng - anh ta có nó trong cuốn sách của anh ta là lời khuyên tốt nhất cho Java. Theo các bạn, noooooo. Vâng, ít nhất chúng ta chỉ có thể khám phá các hành tinh mới, và chúng ta không thể phá hủy các hành tinh cũ (trong tương lai gần), do đó, một hành tinh enum là ok như xa như khả năng tương thích, phải không?

Nói điều đó với Sao Diêm Vương.

+1

Cảm ơn nhận xét, tôi cảm thấy ít cô đơn hơn trong thế giới "những quyết định thiết kế không hoàn hảo đến mức có thể thực hiện công việc" :-) – Philippe

Các vấn đề liên quan