Java - 从不同的单独类中构造对象并将它们添加到sameArray List中

时间:2015-03-15 22:36:22

标签: java object parameters constructor

我试图创建一个构造对象的新实例并将其添加到数组列表的方法。问题是可以使用几个不同的类/对象,并且所有新实例都必须通过相同的方法创建,因此我必须能够将我想要创建的对象类型传递给方法,以及构造函数的参数(参数总是相同的,三个int和一个字符串)。

public void makeAppointment(Object app, int a, int b, int c, String desc){
    app.getClass();
}

这是我对如何处理所有信息的方法的最佳猜测。有没有办法存储app.getClass();返回的内容,以便我可以用它来调用构造函数?

我已经有了一个方法(addAppointment),它将一个对象添加到我可以从我正在处理的这个方法调用的ArrayList中。

public static List<Appointment> apps = new ArrayList<Appointment>();

public AppointmentBook addAppointment(Appointment app) {
    apps.add(app);
    return this;
}

-------编辑

所以这是完整的课程:

public class AppointmentBook {

public static List<Appointment> apps = new ArrayList<Appointment>();

public AppointmentBook addAppointment(Appointment app) {
    apps.add(app);
    return this;
}

public void addAppointment(int month, int day, int year, String desc) {
    Appointment appointment = new Appointment(month, day, year, desc);
    apps.add(appointment);
}// addApp

public void addOnetime(int month, int day, int year, String desc) {
    Onetime oneTime = new Onetime(month, day, year, desc);
    apps.add(oneTime);
}// addOnce

public void addMonthly(int month, int day, int year, String desc) {
    Monthly monthly = new Monthly(month, day, year, desc);
    apps.add(monthly);
}// addMonth

public void addDaily(int month, int day, int year, String desc) {
    Daily daily = new Daily(month, day, year, desc);
    apps.add(daily);
}// addMonth

public void makeAppointment(Object app, int a, int b, int c, String desc){
    Class<? extends Object> a = app.getClass();

}

} // class

我有一个Appointment类,它有一个存储约会的数组列表。我有三个子类的Appointment类。这些子类中的每一个都有一个构造对象的构造函数。我想使用方法makeAppointment添加约会,但我不知道如何指定我想在参数中创建哪种对象,以便我可以调用方法内的构造函数。

1 个答案:

答案 0 :(得分:0)

对我来说,你想要实现的目标并不是很清楚。 但我最好的猜测是多态性。

您需要一个定义列表的课程

public class AppointmentList extends ArrayList{
}

从您的主要课程中,您可以初始化约会列表以保留约会

您要添加的所有约会都需要扩展抽象类Appointment。如果将主类传递给所有需要它的类,可以从那里调用添加约会方法。

我希望我能理解你的问题并解决它。否则,您需要再给我一些代码