2011-12-19 34 views
5

Tôi có một enum như sau:làm thế nào để đọc một giá trị từ tập tin thuộc tính của một loại enum?

public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT} 

trong thuộc tính tập tin giá trị quan trọng là như:

app.environmentType = TEST 

chúng ta biết rằng khi tôi đọc các giá trị từ các thuộc tính tập tin sử dụng khóa, nó sẽ trả về như String như

String envType = properties.getProperty("app.environmentType"); 

yêu cầu của tôi là,

EnvironmentType envType = EnvironmentType.TEST; 

Bây giờ tôi muốn biết rằng có cách nào để lấy giá trị là loại enum không? làm thế nào tôi có thể parse hoặc cast nó?

Trả lời

3
EnvironmentType envType = EnvironmentType.valueOf(envTypeString); 
+0

+1. thanh lịch hơn nhiều so với giải pháp của tôi. – Zohaib

+4

Lưu ý rằng điều này sẽ ném một 'IllegalArgumentException' nếu' envTypeString' chứa một cái gì đó không tương ứng với một trong các hằng số enum - đó là cách bạn có thể kiểm tra xem giá trị có hợp lệ hay không. – Jesper

3

Bạn có thể sử dụng phương pháp valueOf như sau:

String envTypeStr = properties.getProperty("app.environmentType"); 
EnvironmentType envType = EnvironmentType.valueOf(envTypeStr); 

Các phương pháp tĩnh valueOf()values() được tạo ra tại thời gian biên dịch và không xuất hiện trong mã nguồn. Nhưng chúng xuất hiện trong tài liệu của một số enumaration trong thư viện java. Ví dụ: xem SortOrderNormalizer.Form

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