【发布时间】:2018-04-21 07:26:21
【问题描述】:
这是我想做的一个例子:
Class Example {
private Set<A> setA = new HashSet<A>();
private Set<B> setB = new HashSet<B>();
//setters/getters
. . .
// this method is where I don't know what to put
public boolean addToList(Set<?> set, <?> generic){
set.add(generic)
}
public static void main(String[] args){
Example ex = new Example();
ex.addToList(ex.getSetA(), new A());
ex.addToList(ex.getSetB() new B());
}
}
我想编写一个方法来执行不同数据类型的集合。我发现这比为十几个集合中的每一个编写添加/获取/删除方法更实用一些。
有没有办法在 Java 中做到这一点?
【问题讨论】:
-
public <T> boolean addToList(Set<T> set, T generic){应该可以工作,但也许你可以使用映射(类作为键,你的集合作为值,即 A.class=> setA,B.class=> setB)和 addToList 变为map.get(generic.class).add(generic) -
除了
ex.getSetA().add(new A())之外,您还需要什么? -
@Andy Turner 我也可以根据用户的查询添加新的 B。这只是一个简化的例子。我正在处理许多集合,只是想要比重新编写相同的方法来处理每种数据类型更干净的东西
-
您需要展示一个更具说明性的示例,因为对于您在此处获得的内容,您无需重新编写相同的方法。
-
我不同意。示例应该是微不足道的但可以归纳的。我可以用 2 个样本集做任何事情,我可以用 100 个样本集做任何事情,但查看较小的样本要简单得多
标签: java generics wildcard insertion