【发布时间】:2015-03-15 03:01:57
【问题描述】:
我为每个循环创建了一个遍历数组列表中所有对象的循环。这个数组列表中的对象是在不同的类中构造的,这些类都是同一个超类的子类。如何在循环体内引用对象所属的子类?
我做了什么:
for (Appointment item: AppointmentBook.apps){
if (item instanceof Onetime){
//this isn't valid java but I don't know what to do here
Onetime.item.occursOn(int month, int day, int year)
}
}//forloop
我知道这不是一个有效的解决方案,但我最好的猜测是以某种方式使用 instanceof 来检查循环所在的当前项属于哪个子类。编辑:我想要做的是尝试调用我在 Onetime 子类中编写的名为发生的方法
【问题讨论】:
-
你想做什么?
-
我正在尝试调用我在 Onetime 子类中编写的名为 occurOn 的方法
-
您对 instanceof 的猜测是正确的。您只需要相应地投射对象,例如 ((Onetime) item).occursOn()
-
太棒了,谢谢!
标签: java arraylist foreach subclass instanceof