2012-07-18 100 views
1

我有這樣的代碼:可以將字符串轉換爲枚舉值嗎?

BufferedReader in = new BufferedReader(new FileReader("C:\file.txt")); 
String text = in.readLine();//lets say text is now "asd" 

現在這之後,我有我的方法:

private static void doSomething(Enum word){ 
    ... 
} 

是否有可能這個莫名其妙的文字轉換成一個枚舉?

+2

這是一個奇怪的方法'doSomething',要求其argzment是*任何*'Enum',而不是一個特定的'enum'類型。 – MvG 2012-07-18 13:16:11

回答

5

你想用Enum.valueOf

WhateverEnum.valueOf(someString); 
+0

是的,但我將不得不在類的私有靜態枚舉WhateverEnum的開始並添加那裏asd,所以我需要知道在第一個地方asd是在文件中,如果我不?我對麼? – user1451415 2012-07-18 13:15:49

+1

@ user1451415 - 您將需要知道解析值的枚舉類型。如果不知道要分析的Enum類型,您無法將字符串隨機解析爲正確的Enum值。 – 2012-07-18 13:18:07

+0

好,所以我只需要在文本文件中的文字開始時創建新的枚舉,稍後它將很容易,thx的幫助:) – user1451415 2012-07-18 13:21:39

2

您可以使用

MyEnum me = Enum.valueOf(MyEnum.class, word); 

MyEnum me = MyEnum.valueof(word) 
+0

是的,但我將不得不在類的私有靜態枚舉WhateverEnum的開始和添加那裏asd,所以我需要知道在第一個地方asd是在文件中,如果我不?我對麼? – user1451415 2012-07-18 13:16:13

+0

您需要知道要將字符串轉換爲哪個枚舉。如果你想要一個通用的「枚舉」,你可以把它作爲一個字符串。 – 2012-07-18 13:31:25