Java 如何调用放置在对象数组中存储的类中的方法?

Java 如何调用放置在对象数组中存储的类中的方法?,java,arraylist,Java,Arraylist,我有一个Jorney类,其中有几个变量和一些返回这些变量值的方法 public class Jorney { private int timeH; public Jorney(int timeH) { this.timeH=timeH; } private int getTimeH() { return townFrom; }

我有一个Jorney类,其中有几个变量和一些返回这些变量值的方法

    public class Jorney {





   private int timeH;


   public Jorney(int timeH)
            {
                this.timeH=timeH;
             }
   private int getTimeH()
         {
       return townFrom;
         }
}
然后我有另一个类,我在其中创建对象的ArrayList

ArrayList<Object> myJorney = new ArrayList<Object>(); 
现在,当我向ArrayList添加一些对象时,我的目标是遍历所有那些“jorneys”对象,调用getTimeH方法,并将其参数存储在变量中

我使用迭代器从一个对象转到另一个对象,但不知道如何调用该方法

private int totalTime()
 {

     Iterator<Object> i = myJorney.iterator();
     int sum;

     while (i.hasNext()) {
       Object j = i.next();
       int hour= j.getTimeH();
       sum=sum+hour;
        }
     return sum; 

我想知道是否有人可以帮我做这件事?

在调用Jorney类方法之前,您需要将对象强制转换回Jorney。试试这个:

   int hour= ((Jorney)j).getTimeH();
您需要强制转换它,因为否则您将调用对象类实例上的方法。并且对象类没有任何名为getTimeH的方法强制转换为Jorney您的对象从迭代器获取

如果需要将旅程对象存储在对象数组中,则需要强制转换:

Journey j = (Journey)i.next();
但是,最好使用Travely作为其类型参数声明列表:

ArrayList<Journey> myJorney = new ArrayList<Journey>();

您需要将对象从迭代器强制转换为类的类型,但要小心!最好使用Jorney作为泛型类型,而不是对象。如果其中有其他对象,并且您只想为Jorney对象做些事情,那么我建议您重新考虑您的设计。为什么要使用列表而不是列表?
ArrayList<Journey> myJorney = new ArrayList<Journey>();
Jorney j = i.next()