将泛型变量数据类型添加到集合 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,我认为你最简单的(但不是最好的 )方法是将其删除分为两种方法。