Как узнать используемого наследника интерфейса.
Как узнать используемого наследника интерфейса.
Здравствуйте. Есть ли в эклипсе, в java-коде, удобный способ узнать прямых наследников класса или интерфейса?
Или переиначу вопрос. Как узнать объект какого класса используется в моей программе в качестве известного интерфеса?
Причина вопроса - ввела в ступор такая запись:
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
Очень любопытно посмотреть на код используемого метода:
public Display getDefaultDisplay();
который описан в интерфейсе WindowManager.
Или переиначу вопрос. Как узнать объект какого класса используется в моей программе в качестве известного интерфеса?
Причина вопроса - ввела в ступор такая запись:
this.getWindowManager().getDefaultDisplay().getMetrics(metrics);
Очень любопытно посмотреть на код используемого метода:
public Display getDefaultDisplay();
который описан в интерфейсе WindowManager.
Re: Как узнать используемого наследника интерфейса.
По идее, если я сделаю такой вывод в лог из работающей программы:
this.getWindowManager().toString();
То, я должен буду получить имя класса преобразованого до родительского интерфейса?
Получаю класс Window. Но в нем нет функции getDefaultDisplay и вообще он не является потомком WindowManager!
Укажите, где я не верно соображаю?
this.getWindowManager().toString();
То, я должен буду получить имя класса преобразованого до родительского интерфейса?
Получаю класс Window. Но в нем нет функции getDefaultDisplay и вообще он не является потомком WindowManager!
Укажите, где я не верно соображаю?
Re: Как узнать используемого наследника интерфейса.
Ctrl + left_mous_click на методе - откроет его.
YourClass.getClass().toString() - узнать класс.
Ctrl + T - покажет "дерево наследования" для класса.
YourClass.getClass().toString() - узнать класс.
Ctrl + T - покажет "дерево наследования" для класса.

Re: Как узнать используемого наследника интерфейса.
То, я должен буду получить имя класса преобразованого до родительского интерфейса? - нет. Вы получите строковое представление метода getWindowManager в контексте объекта this.shidiv писал(а):По идее, если я сделаю такой вывод в лог из работающей программы:
this.getWindowManager().toString();
То, я должен буду получить имя класса преобразованого до родительского интерфейса?
Получаю класс Window. Но в нем нет функции getDefaultDisplay и вообще он не является потомком WindowManager!
Укажите, где я не верно соображаю?
Получаю класс Window - да ладно? вы получаете что то вроде -android.view.WindowManagerImpl@528e4d8c, а при чем тут вообще getDefaultDisplay?
Укажите, где я не верно соображаю - я вообще пока не вижу смысла высказываний, что вы найти пытаетесь?

Re: Как узнать используемого наследника интерфейса.
Касательно вопроса, где вы не так соображаете - вышеприведенные высказывания вообще ничем не связанны и говорят только о том, что вы сами не понимаете, что вам надо. Что значит использование класса в качестве интерфейса? это вообще что такое?shidiv писал(а):Здравствуйте. Есть ли в эклипсе, в java-коде, удобный способ узнать прямых наследников класса или интерфейса?
Или переиначу вопрос. Как узнать объект какого класса используется в моей программе в качестве известного интерфеса?r.

Re: Как узнать используемого наследника интерфейса.
>>>..да ладно? вы получаете что то вроде -android.view.WindowManagerImpl@528e4d8c
вот что получаю - "android.view.Window$LocalWindowManager@405188b0"
а при выводе:
this.getWindowManager().getClass().toString() - "class android.view.Window$LocalWindowManager"
Думал название класса от последней точки до "$".
Иначе запись "Window$LocalWindowManager" - вообще не понятна. Что это означает?
вот что получаю - "android.view.Window$LocalWindowManager@405188b0"
а при выводе:
this.getWindowManager().getClass().toString() - "class android.view.Window$LocalWindowManager"
Думал название класса от последней точки до "$".
Иначе запись "Window$LocalWindowManager" - вообще не понятна. Что это означает?
Последний раз редактировалось shidiv 03 янв 2014, 23:59, всего редактировалось 3 раза.
Re: Как узнать используемого наследника интерфейса.
>>>при чем тут вообще getDefaultDisplay?
this.getWindowManager() возвращает :
private WindowManager mWindowManager;
WindowManager - интерфейс содержащий не описанный метод : getDefaultDisplay();
Вопрос: что здесь возвращается :
this.getWindowManager().getDefaultDisplay().... ?
this.getWindowManager() возвращает :
private WindowManager mWindowManager;
WindowManager - интерфейс содержащий не описанный метод : getDefaultDisplay();
Вопрос: что здесь возвращается :
this.getWindowManager().getDefaultDisplay().... ?
Последний раз редактировалось shidiv 04 янв 2014, 00:15, всего редактировалось 1 раз.
Re: Как узнать используемого наследника интерфейса.
Я вообще не могу понять что вы делаете.
1. Класс Window -абстрактный и никаких объектов этого класса быть не может.
3. Window$LocalWindowManager@405188b0 - строковое представление возвращаемого объекта. Возвращаемого методом Activity.getWindowManager()
2. getDefaultDisplay() - возвращает объект класса Display, хотя при чем тут это? вы вообще каждый раз задаете ничем не связанные вопросы.
По сути вашего первого вопроса: this.getWindowManager().getDefaultDisplay().getMetrics(metrics); возвращает размер и разрешение экрана, остальные вопросы вообще для меня не понятны и я не знаю, как на них отвечать.
1. Класс Window -абстрактный и никаких объектов этого класса быть не может.
3. Window$LocalWindowManager@405188b0 - строковое представление возвращаемого объекта. Возвращаемого методом Activity.getWindowManager()
2. getDefaultDisplay() - возвращает объект класса Display, хотя при чем тут это? вы вообще каждый раз задаете ничем не связанные вопросы.
По сути вашего первого вопроса: this.getWindowManager().getDefaultDisplay().getMetrics(metrics); возвращает размер и разрешение экрана, остальные вопросы вообще для меня не понятны и я не знаю, как на них отвечать.

Re: Как узнать используемого наследника интерфейса.
<<Вопрос: что здесь возвращается :
this.getWindowManager().getDefaultDisplay().... ?>>
Некорректно сформулировал.
Вопрос такой: где описан метод getDefaultDisplay(), если он не описан в возвращаемом методом getWindowManager() интерфейсе?
Вообще у меня изначально было предположение, что возвращается на самом деле объект класса-наследника интерфейса WindowManager, преобразованный восходящим преобразованием до родительского интерфейса. И если это так, то вопрос - как узнать имя этого класса-наследника, чтобы в нем посмотреть описание метода getDefaultDisplay()?
this.getWindowManager().getDefaultDisplay().... ?>>
Некорректно сформулировал.
Вопрос такой: где описан метод getDefaultDisplay(), если он не описан в возвращаемом методом getWindowManager() интерфейсе?
Вообще у меня изначально было предположение, что возвращается на самом деле объект класса-наследника интерфейса WindowManager, преобразованный восходящим преобразованием до родительского интерфейса. И если это так, то вопрос - как узнать имя этого класса-наследника, чтобы в нем посмотреть описание метода getDefaultDisplay()?
Последний раз редактировалось shidiv 04 янв 2014, 00:54, всего редактировалось 1 раз.
Re: Как узнать используемого наследника интерфейса.
по сути - DEFAULT_DISPLAY это то. что возвращает метод getDefaultDisplay().shidiv писал(а):<<Вопрос: что здесь возвращается :
this.getWindowManager().getDefaultDisplay().... ?>>
Некорректно сформулировал.
Вопрос такой: где описан метод getDefaultDisplay(), если он не описан в возвращаемом методом getWindowManager() интерфейсе?
Вообще у меня изначально было предположение, что возвращается на самом деле объект-наследник интерфейса WindowManager, преобразованный восходящим преобразованием до родителя-интерфейса.
метод абстрактный, реализован он в классе WindowManagerImpl, который реализует интерфейс WindowManager.
объект-наследник интерфейса -так не бывает, объект может реализовать интерфейс, который по сути -чертеж и не может иметь наследников

Re: Как узнать используемого наследника интерфейса.
"Наследником" я называл класс наследующий данный интерфейс) Безусловно объекты можно создавать только класса, у которого реализованы все абстрактные методы родительских классов и методы интерфейсов.
Но я так и не могу понять, что за магия происходит в методе WindowManager.getDefaultDisplay()? Где он реализован?
Но я так и не могу понять, что за магия происходит в методе WindowManager.getDefaultDisplay()? Где он реализован?
Re: Как узнать используемого наследника интерфейса.
Я вам уже писал что это абстрактный метод класса Display реализован он в классе WindowManagerImpl.javashidiv писал(а):"Наследником" я называл класс наследующий данный интерфейс) Безусловно объекты можно создавать только класса, у которого реализованы все абстрактные методы родительских классов и методы интерфейсов.
Но я так и не могу понять, что за магия происходит в методе WindowManager.getDefaultDisplay()? Где он реализован?
