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