2011-12-19 37 views
5

私は以下のように列挙型があります:プロパティでenum型のプロパティファイルから値を読み取る方法は?

public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT} 

は、キーの値が似ているファイルを:

app.environmentType = TEST 

私たちは、私はキーを使用して、ファイルのプロパティから値を読んだとき、それは文字列として返すことを知っています

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

のように私の要件は、

EnvironmentType envType = EnvironmentType.TEST; 
0であります

ここで値がenumタイプになる方法があることを知りたいですか?どうすればいいですかparseまたはcastですか?次のように

答えて

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

+1を参照してください。私の解決策よりはるかにエレガントです。 – Zohaib

+4

'envTypeString'に列挙定数の1つに対応しないものが含まれている場合、これは' IllegalArgumentException'をスローします。つまり、値が有効かどうかを確認する方法です。 – Jesper

3

あなたはvalueOfメソッドを使用することがあります。

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

静的メソッドvalueOf()values()コンパイル時に作成されたソースコードには表示されません。しかし、彼らはJavaライブラリのいくつかのenumarationのドキュメントに表示されます。たとえば、SortOrderおよびNormalizer.Form

関連する問題