2011-12-19 13 views
5

Ho un enum come di seguito:come leggere un valore dal file delle proprietà di un tipo enum?

public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT} 

nel file delle proprietà il valore della chiave è come:

app.environmentType = TEST 

sappiamo che quando ho letto il valore dalle proprietà del file usando la chiave, restituisce come stringa come

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

mia esigenza è,

EnvironmentType envType = EnvironmentType.TEST; 

Ora voglio sapere che c'è un modo per ottenere il valore come tipo enum? come posso io parse o cast esso?

risposta

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

+1. molto elegante della mia soluzione. – Zohaib

+4

Si noti che questo genererà un 'IllegalArgumentException' se' envTypeString' contiene qualcosa che non corrisponde ad una delle costanti enum - è così che si può verificare se il valore è valido. – Jesper

3

È possibile utilizzare valueOf metodo come segue:

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

I metodi statici valueOf() e values() vengono creati in fase di compilazione e non appaiono nel codice sorgente. Ma compaiono nella documentazione di qualche enumerazione nella libreria java. Ad esempio, vedere SortOrder e Normalizer.Form

Problemi correlati