是否可以使用相同的add方法將各種類型的數據添加到地圖或集合中,具體取決於傳入的內容?例如...Java地圖和集合使用相同的添加方法
public static <U, T> void add(T _token, U<T> set>
{
...
}
在哪裏可能的字符串或雙是_token參數以及一個地圖,地圖或設置或設置在設定可變。我知道地圖接受put方法的兩個值,但我暫時忽略了這個...
任何人都可以告訴我如何實現這種模板pleasEe?
在此先感謝!
是否可以使用相同的add方法將各種類型的數據添加到地圖或集合中,具體取決於傳入的內容?例如...Java地圖和集合使用相同的添加方法
public static <U, T> void add(T _token, U<T> set>
{
...
}
在哪裏可能的字符串或雙是_token參數以及一個地圖,地圖或設置或設置在設定可變。我知道地圖接受put方法的兩個值,但我暫時忽略了這個...
任何人都可以告訴我如何實現這種模板pleasEe?
在此先感謝!
恕我直言,這聽起來像一個糟糕的設計。在決定使用這種方法之前,你應該更深入地思考你的設計。一張地圖和一套地圖是非常不同的東西,通常它們不會用於同一件事情。這是更好地重載方法來代替,例如:
public static <T> void add(final T token, final Map<Whatever, T> holder)
public static <T> void add(final T token, final Set<T> holder)
仍然使用多態和泛型可能是如下一個解決辦法:
public static <T> void add(final T token, final Object holder) {
if (holder instanceof Map) {
final Map map = (Map) holder;
map.put(KEY, token); // Or whatever you want to do in this case
} else if (holder instanceof Set) {
final Set set = (Set) holder;
set.add(token);
} else {
throw new IllegalArgumentException("Holder is nor a Map neither a Set");
}
}
注意,這是不加以控制,也就是Map
可能是<String, String>
,你通過Integer
。
我絕對更喜歡重載解決方案的方法。
超載完全滑倒我的腦海。更好的主意,謝謝! – CrazyDogLady
那麼,你不能忽視它。如果它是地圖,那麼其他價值是多少? – m0skit0
如何在地圖中插入令牌? 'map.put(token,token)'? – assylias
我想將它連接成一個字符串或者東西,把它傳遞給add方法,然後在add方法中分割它。也許。我還沒有完全想過它 – CrazyDogLady