这是我想要做的一个例子:
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());
}
}
我想编写一个方法来执行不同数据类型的集合。我发现这比为十几组中的每一组编写add / get / remove方法更实用。
有没有办法在Java中执行此操作?
答案 0 :(得分:3)
我认为你需要参数化方法
public <T> boolean addToList(Set<T> set, T generic){
set.add(generic)
}
答案 1 :(得分:1)
(除非你想在add
方法成功/失败时做出某些事情,否则你应该使用void
而不是通用类型。)
这是一个应该有效的例子:
public void addToAList(Set<A> set, A generic){
set.add(generic);
}
但是,如果要创建通用addToList
函数,则需要进一步推进,因为您需要比较您在方法中输入的Set和Object之间的类。考虑到您无法在对象上调用getClass()
或.class
,我认为您最简单的方法(但不是最好的)方法是将其缩减为两个方法