-1

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

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

4

3 回答 3

2

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

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

但是,最好将列表声明Journey为它的类型参数:

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

在这种情况下,您可以使用Iterator<Journey>, 并在没有强制转换的情况下进行调用:

Jorney j = i.next()
于 2013-09-10T15:44:49.290 回答
0

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

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

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

于 2013-09-10T15:41:50.863 回答
0

投射到Jorney 您的对象从iterator

 while (i.hasNext()) {
   Jorney j =(Jorney) i.next();
   int hour= j.getTimeH();
   sum=sum+hour;
    }
于 2013-09-10T15:43:10.337 回答