2012-02-27 18 views
0


理想的方式,給我的使用情況

這又是,我想,一個「最佳做法」的問題,因爲我能想到的讓我的使用情況實施了一些不雅的方式。

我的用例如下
我正在編寫一個MethodManager(排序)模塊,它有助於最終用戶通過UI處理實際方法(函數)調用。
爲了這個特定的目的,我有一個methodDefinition類,它是一個方法(函數)看起來像我的系統的對象形式。
什麼我methodDefinition成員看起來像一個簡要概述如下:

methodName -- String 
methodInputs -- ArrayList<String> 
methodResultType -- enum(STRING,MAP,LIST) 
methodResult -- <<variable, on the basis of methodResultType>> 

現在methodResult是可變的,可以是基於什麼methodResultType設置爲任意字符串,地圖或列表。

我創建了一個MethodResultType類佔methodResultType,它看起來如下

public enum MethodResultType { 
    LIST, 
    MAP, 
    STRING; 
    } 

現在我知道我必須寫一個類基於methodResultType佔methodResult及其變動性,但不能認爲一個沒有打擊的方式來。

在這方面的任何建議/指針將不勝感激。

感謝
p1ng

回答

2

爲List,Map和字符串有一個共同的祖先類:java.lang.Object。因此methodResult可以是一個對象。

你也可以換的結果,其類型爲MethodResult對象,這將提供方法,如getType()getValueAsString()getValueAsList()getValueAsMap()。如果值的類型不是方法返回的類型,最後三個方法將拋出IllegalStateException。

+0

謝謝@JB Nizet。這是有道理的。我接受這個答案。 – ping 2012-02-28 04:37:35

相關問題