2013-07-06 58 views
0

我知道我的使用情況看起來很可笑,但這是解釋什麼,我需要那麼這裏有雲枚舉思考的Java

可以說,我想寫以下傻泛型方法最簡單的方法:

void toString(Object o); 

Object fromString(String enumObject,Class<Enum> classOfTheObject); 

給出:

public enum PositionType 
{ 
    B, 
    F, 
    L, 
    R 
} 

和:

PositionType ptype = PositionType.B; 

我如何去和實現這些方法使:

fromString(toString(ptype),PositionType.class).equals(PositionType.B); 

將返回true?

我試圖尋找在java reflections tutorial,但我仍然沒有找到如何解決它那裏...

請注意,執行必須不依賴於特定的枚舉類型,它可以是任何枚舉類型,但對於我所需要的,我們可以只限於枚舉對象。

回答

1

你可以用很多解決方案實現這一目標,這裏就是其中之一(我寫了嚴格的最低):

String toString(Object o) { 
    return ((Enum) o).name(); 
} 

<T extends Enum<T>> Object fromString(Class<T> enumType, String o) { 
    return Enum.valueOf(enumType, o); 
} 
+0

似乎工作,謝謝! –