如何将HashSet元素添加到Arraylist中的对象?

时间:2019-04-16 12:37:09

标签: java arraylist hashset

我想向我的医生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;
}

我需要能够向现有的专科医生对象添加多个专长。

谢谢。

1 个答案:

答案 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);