Вопрос по ООП. Конкретный пример

175
30 марта 2018, 12:57

Класс - реализация интерфейса, описывающего работника. У каждого работника может быть менеджер, у каждого менеджера может быть менеджер итд. Менеджер не объект данного класса. Функция setManager устанавливает менеджера работнику, getManagerName возварщает его имя. Вопрос - как обратиться к полям объекта manager и почему я не могу этого сделать? Ибо в отладчике значения переменных посмотреть можно.

String name;
public Object manager;
public void setManager(Employee manager) {
    this.manager = manager;
}
public String getManagerName() {
    if (manager != null) {
        return manager.name; // не работает
    }  
 else {
           return null; 
        } 
}
Answer 1

Вы не можете обратиться к полям объекта manager, потому что этот член класса объявлен как тип Object, у которого нет поля name. Вы же знаете тип менеджера:

private Employee manager;
public void setManager(Employee manager) {
  this.manager = manager;
}
public String getManagerName() {
  if (manager != null) {
    return manager.name; // работает
  } else {
    return null; 
  } 
}
READ ALSO
Проектирование и многопоточность Java

Проектирование и многопоточность Java

Существует кусками реализованная структура проектаБез многопоточности

257
GridView in LinearLayout

GridView in LinearLayout

Можно ли использовать gridview в linearlayout/ Ставлю, вроде отображает,а содержимого нету!

204
JSP Поле с нижним подчеркиванием

JSP Поле с нижним подчеркиванием

JSP ругается на поле с нижним подчеркиванием, но информации о том, что так делать нельзя, я не нашел

186
Не видна зависимость, добавленная gradle

Не видна зависимость, добавленная gradle

У меня есть следующий buildgradle файл:

170