我试图创建一个构造对象的新实例并将其添加到数组列表的方法。问题是可以使用几个不同的类/对象,并且所有新实例都必须通过相同的方法创建,因此我必须能够将我想要创建的对象类型传递给方法,以及构造函数的参数(参数总是相同的,三个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
添加约会,但我不知道如何指定我想在参数中创建哪种对象,以便我可以调用方法内的构造函数。
答案 0 :(得分:0)
对我来说,你想要实现的目标并不是很清楚。 但我最好的猜测是多态性。
您需要一个定义列表的课程
public class AppointmentList extends ArrayList{
}
从您的主要课程中,您可以初始化约会列表以保留约会
您要添加的所有约会都需要扩展抽象类Appointment。如果将主类传递给所有需要它的类,可以从那里调用添加约会方法。
我希望我能理解你的问题并解决它。否则,您需要再给我一些代码