Проверка наличия реализации интерфейса у класса

Ответить
Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Проверка наличия реализации интерфейса у класса

Сообщение neoksi » 09 апр 2013, 23:39

1) Как проверить наличие реализации у класса интерфейса?
На сколько я понял нужно сделать следующее:
(название интерфейса).isInstance(ссылка на объект класса)
Вернет true в случае наличия реализации интерфейса в классе.

Если это верно, то возникает следующий вопрос:
2) Как правильно обратиться к методу интерфейса реализованному в объекте?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Проверка наличия реализации интерфейса у класса

Сообщение KamiSempai » 10 апр 2013, 10:08

Очевидно, нужно привести объект к интерфейсу.
((НазваниеИнтерфейса) СсылкаНаОбъектКласса).МетодИнтерфейса();
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Проверка наличия реализации интерфейса у класса

Сообщение neoksi » 10 апр 2013, 15:58

Ну да, просто еще ни разу этого не делал с интерфейсами. =)
А еще не лишним будет обернуть в try.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Проверка наличия реализации интерфейса у класса

Сообщение KamiSempai » 10 апр 2013, 16:29

А зачем? Instance на интерфейсах и так медленно работает, а тут еще try.
Если isInstance вернул true, значит все в порядке.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Аватара пользователя
neoksi
Сообщения: 712
Зарегистрирован: 26 июл 2012, 10:42
Контактная информация:

Re: Проверка наличия реализации интерфейса у класса

Сообщение neoksi » 10 апр 2013, 16:35

KamiSempai писал(а):А зачем? Instance на интерфейсах и так медленно работает, а тут еще try.
Если isInstance вернул true, значит все в порядке.
Если где-то может вылететь ошибка, она обязательно вылетит =)

В try обернуть вызов метода.

Ответить