Java通用方法将不同的对象添加到不同的ArrayList中

Java通用方法将不同的对象添加到不同的ArrayList中,java,generics,arraylist,Java,Generics,Arraylist,我想让方法根据作为参数传递的类,将类的对象推送到特定的arraylist中: public class Main { private ArrayList<SomeClass1> sc1; private ArrayList<SomeClass2> sc2; public Main() { sc1 = new ArrayList<SomeClass1>(); sc2 = new ArrayList

我想让方法根据作为参数传递的类,将类的对象推送到特定的arraylist中:

public class Main {
    private ArrayList<SomeClass1> sc1;
    private ArrayList<SomeClass2> sc2;

    public Main()
    {
        sc1 = new ArrayList<SomeClass1>();
        sc2 = new ArrayList<SomeClass2>();
    }

    public <T> void add(Class<T> type)
    {
            //code for method that depending on type pushes objects into either sc1 or sc2
    }
    public static void main(String[] args) {
        Main m = new Main();
        SomeClass1 some1 = new SomeClass1();
        SomeClass2 some2 = new SomeClass2();

        m.add(some1); //here i want some1 to be stored in sc1
        m.add(some2); // here i want some2 to be stored in sc2
    }
}
公共类主{
私人ArrayList sc1;
私人ArrayList sc2;
公用干管()
{
sc1=新的ArrayList();
sc2=新的ArrayList();
}
公共无效添加(类类型)
{
//根据类型将对象推入sc1或sc2的方法的代码
}
公共静态void main(字符串[]args){
Main m=新的Main();
SomeClass1 some1=新的SomeClass1();
SomeClass2 some2=新的SomeClass2();
m、 add(some1);//这里我希望some1存储在sc1中
m、 add(some2);//这里我希望some2存储在sc2中
}
}

如果有任何帮助,我将不胜感激。

泛型并不是神奇的,您只需要if语句,并在add类中检查if语句中的类型

另外,您的方法签名是冲突的,您是返回了什么还是返回了void,我将假定为void。您也不需要构造函数,只需使用main方法初始化两个ArrayList即可

public void add(Class<T> type) {
    if(type instanceOf SomeClass1) {
        // do work here
    } else if (type instanceOf SomeClass2) {
        // do other work here
    }
 }
public void add(类类型){
if(键入instanceOf SomeClass1){
//你在这里工作吗
}else if(键入SomeClass2的instanceOf){
//在这里做其他工作
}
}

注意java命名约定。变量名应以小写字符开头。它不完全清楚您希望
add()
做什么。您能否填写
main()?