我有一个对象的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).
}
答案 0 :(得分:0)
首先,如果类型安全,最好使用非Object的类型。在你的情况下使用Property,因为两者都扩展了它。
static ArrayList<Property> properties = new ArrayList<Property>();
然后你可以得到如下的VA:
ViewingArrangement va = properties.get(input).getVA();
va.setOpenTime()