我想向我的医生ArrayList中的对象添加一个HashSet String
(医生专长),但是无法从驱动程序访问专家(医生类型)类。专家医生类是RegisteredDoctor的子类,后者是Doctor的子类。
我在添加专科医生时添加了专长,但现在不能在不向数组列表中添加其他对象的情况下添加其他专家。 Doctor和RegisteredDoctor类也是抽象的。
我可以通过添加专家医生对象来添加专长
specialism.add(ScannerInput.validNextLine("Enter the Doctor's area of Speciality: "));
doctors.addDoctor(new Specialist(name, dob, gender, address, contactNumber, isQualifiedInIreland, qualifications, specialism));
我有这些getter和setter方法,但无法从驱动程序访问它们。
public HashSet<String> getSpecialism() {
return specialism;
}
public void setSpecialism(HashSet<String> specialism) {
this.specialism = specialism;
}
我需要能够向现有的专科医生对象添加多个专长。
谢谢。
答案 0 :(得分:0)
这很难解释(发生在您不确切知道要寻找的内容时)。 instanceOf运算符是我一直在寻找的答案,使我能够访问我的一个子类中的setSpecialism方法。
int index = ScannerInput.readNextInt("Enter Index of Doctor you want to update Specialisms: ");
HashSet<String> spec = new HashSet<>();
if (doctors.getDoctor(index) instanceof Specialist) {
int num = ScannerInput.readNextInt("Enter how many Specialisms you want to add: ");
for (int i = 0; i < num; i++) {
String specUpdate = ScannerInput.validNextLine("Enter Specialism: ");
spec.add(specUpdate);
}
}
((Specialist) doctors.getDoctor(index)).setSpecialism(spec);