Почему не работает метод получения объекта?

Столкнулся с о следующей проблемой. Есть несколько дочерних классов, наследуемых от родительского. Они используют общие методы в классе MainActivity. В нем я использую спиннер, в который загружается наименование лекарства (строка).

Сделал метод получения класса, чтобы обращаться к нему из разных методов MainActivity.

    public static IbufenForte getIbufenForteClass() {
    return new IbufenForte();
}

Далее в методе выбора значения из спиннера, получаю то что мне нужно

        syrups.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            selected = syrups.getSelectedItem().toString(); //заношу строку из спиннера
            intervalBetweenReceptions.setText(getIbufenForteClass().intervalBetweenReceptions()); //тут все что надо 
                                                                                                                                   //получаю из соответствующего класса
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

Теперь я хочу, чтобы при выборе в спиннере названия лекарсва, брался тот же метод только из соотвествующего класса. Но чтобы не плодить условия иф елсе, сделал такой метод

    public Object getSelectedClass() {
    selectedClass.put(getIbufenForteClass(), getIbufenForteClass().contentActiveSubstance()); //заполняю хэш мэп
    selectedClass.put(getIbufenClass(), getIbufenClass().contentActiveSubstance()); //ключ - объект, значение - поле с  
                                                                                                                                  //наименованием            
    selectedClass.forEach((key, value) -> {
        if (value.equals(this.selected)) {
            obj = key;
        }
    });
    return obj; // возвращаю ссылку на объект класса выбранного в спиннере наименования
}

Теперь в теории я мог строку

intervalBetweenReceptions.setText(getIbufenForteClass().intervalBetweenReceptions());
заменить на
intervalBetweenReceptions.setText(getSelectedClass().intervalBetweenReceptions());

Но увы, getSelectedClass() ничего не знает о методах выбранного класса, хотя объект возвращает.

Как можно задуманное реализовать в данной ситуации другим способом, потому как с моим уровнем знаний я могу лишь наплодить if else


Ответы (0 шт):