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

时间:2013-09-10 15:40:54

标签: java arraylist

我有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; 

我想知道是否有人可以帮助我?

3 个答案:

答案 0 :(得分:2)

如果您需要将Journey个对象存储在Object的数组中,则需要演员:

Journey j = (Journey)i.next();

但是,最好使用Journey作为其类型参数声明您的列表:

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

在这种情况下,您可以使用Iterator<Journey>,并在没有演员的情况下拨打电话:

Jorney j = i.next()

答案 1 :(得分:0)

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

   int hour= ((Jorney)j).getTimeH();

你需要强制转换它,否则你将在Object类实例上调用方法。并且Object类没有名称为getTimeH()

的任何方法

答案 2 :(得分:0)

Jorney

投射到iterator你的对象
 while (i.hasNext()) {
   Jorney j =(Jorney) i.next();
   int hour= j.getTimeH();
   sum=sum+hour;
    }