Java 我如何在不同类的许多不同对象的数组列表中指定对象来自哪个类

Java 我如何在不同类的许多不同对象的数组列表中指定对象来自哪个类,java,arraylist,foreach,subclass,instanceof,Java,Arraylist,Foreach,Subclass,Instanceof,我创建了一个for each循环,用于遍历数组列表中的所有对象。此数组列表中的对象在不同的类中构造,这些类都是同一超类的子类。如何在循环体中引用对象所属的子类 我所做的: for (Appointment item: AppointmentBook.apps){ if (item instanceof Onetime){ //this isn't valid java but I don't know what to do here

我创建了一个for each循环,用于遍历数组列表中的所有对象。此数组列表中的对象在不同的类中构造,这些类都是同一超类的子类。如何在循环体中引用对象所属的子类

我所做的:

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来检查循环所属的当前项属于哪个子类。编辑:我想做的是调用一个名为ocurson的方法,我曾经在子类Onetime中编写过这个方法。为了得到一个答案,可以这样进行转换


((Onetime)item).ocurson()

你想做什么?我正在尝试调用一个名为ocurson的方法,我在子类Onetime中编写了这个方法。你对instanceof的猜测是正确的。您只需相应地投射对象,例如((一次性)物品)。occursOn()太棒了!谢谢!