是否可以使用相同的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