【发布时间】:2015-05-17 23:42:24
【问题描述】:
我正在尝试创建一个构造对象的新实例并将其添加到数组列表的方法。问题是可以使用几个不同的类/对象,并且所有新实例都必须由相同的方法创建,所以我必须能够将我希望创建的对象类型传递给该方法,以及构造函数的参数(参数始终相同,三个int和一个String)。
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();
}
}//类
我有一个类约会簿,它有一个存储约会的数组列表。我有三个子类的约会。这些子类中的每一个都有一个构造对象的构造函数。我想使用方法makeAppointment添加约会,但是我不知道如何在参数中指定我想创建哪种对象,以便我可以在方法内部调用构造函数。
【问题讨论】:
-
好的,那你有什么问题?
-
有没有办法存储
app.getClass();返回的内容,以便我可以使用它来调用构造函数? -
给我们更多信息:你有什么样的“不同的班级”?我假设它们都是
Appointment的子类,不是吗?你如何/在哪里决定实例化哪个类? -
是的,
Appointment有三个子类,启动哪个类是在参数中决定的,或者至少我认为这是解决这个问题的正确方法
标签: java object parameters constructor