将泛型变量数据类型添加到集合 Java
Adding a generic of variable datatype to a set Java
这是我想做的一个例子:
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有没有办法做到这一点?
我认为你需要参数化方法
public <T> boolean addToList(Set<T> set, T generic){
set.add(generic)
}
(除非你想在 add
方法成功/失败时做点什么,否则你应该使用 void
而不是你的通用类型。)
这是一个应该有效的示例:
public void addToAList(Set<A> set, A generic){
set.add(generic);
}
但是,如果您想创建一个通用的 addToList
函数,您需要进一步推进它,因为您需要比较 类 您正在输入的 Set 和 Object在你的方法中。考虑到你不能在一个对象上调用 getClass()
或 .class
,我认为你最简单的(但不是最好的 )方法是将其删除分为两种方法。
这是我想做的一个例子:
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有没有办法做到这一点?
我认为你需要参数化方法
public <T> boolean addToList(Set<T> set, T generic){
set.add(generic)
}
(除非你想在 add
方法成功/失败时做点什么,否则你应该使用 void
而不是你的通用类型。)
这是一个应该有效的示例:
public void addToAList(Set<A> set, A generic){
set.add(generic);
}
但是,如果您想创建一个通用的 addToList
函数,您需要进一步推进它,因为您需要比较 类 您正在输入的 Set 和 Object在你的方法中。考虑到你不能在一个对象上调用 getClass()
或 .class
,我认为你最简单的(但不是最好的 )方法是将其删除分为两种方法。