arraylist中对象的访问方法

时间:2016-05-29 07:49:54

标签: java

我有一个对象的ArrayList,它存储了ForSaleProperty对象或者RentalProperty对象;

static ArrayList<Object> obj = new ArrayList<Object>();

我的RentalProperty和ForSaleProperty是Property

的子类
RentalProperty extends Property 
ForSaleProperty extends Property

Inside Property,我有一个Address和ViewingArrangement对象。

在ViewingArrangement中,我有一个ContactPerson对象和一个String openTime变量。我在ViewingArrangement中也有方法setOpenTime。

问题:

如何在ViewingArrangement中访问setOpenTime()方法。

在我的对象arraylist中,我有这个

RentalProperty rp1 = new RentalProperty(1500,"6-Jun-16");
Address a1 = new Address(150,"Tampines Ave 5","Singapore",6002);
ContactPerson cp1 = new ContactPerson("Benjamin","Murdoch",2738482);
ViewingArrangement va1 = new ViewingArrangement(cp1,"1000H");
rp1.setAddress(a1);
rp1.setVA(va1);

obj.add(rp1);

所以现在我想改变rp1的openTime。

我尝试了以下操作,但无法访问我的对象中的方法。

static void editOpenTime()
{
    int input;
    String newOpenTime;
     listProperty();
     Scanner in = new Scanner(System.in);
     System.out.println("Enter property number : ");
     input = in.nextInt(); in.nextLine();
     System.out.println("Enter new open time for property # : "+input);
     newOpenTime = in.nextLine();

     obj.get(input).

}

1 个答案:

答案 0 :(得分:0)

首先,如果类型安全,最好使用非Object的类型。在你的情况下使用Property,因为两者都扩展了它。

static ArrayList<Property> properties = new ArrayList<Property>();

然后你可以得到如下的VA:

ViewingArrangement va = properties.get(input).getVA();
va.setOpenTime()