LINUX.ORG.RU

История изменений

Исправление r--r--r--, (текущая версия) :

Зачем разбирать пример, который совершенно не отражает проблему?

Давай попробуем написать пример, который отражает проблему.

Представь себе, что я автор сторонней библиотеки и реализовал оба интерфейса Beep и Boop в одном классе

Идея моего примера, что некие авторы сторонней библиотеки реализовали два разных интерфейса, как ты и просил. Интерфейсы и реализации в примере - сторонние.

Озвученная тобой проблема:

ты не можешь использовать два интерфейса сразу как тип переменной или поля класса.

Будешь делать костыль в виде обёртки?

Да. В моём примере это решается через wrapper, ровно как ты написал:

наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс.

Твой тезис:

Проблема возникает с реализациями сразу нескольких интерфейсов. Типом variable сразу несколько интерфесов быть не могут. Можно сделать свой один интерфейс, который содержит (Go) или наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс. … В Java это работать не будет, поскольку потребует изменение всех конкретных реализаций, которые вовсе необязательно ваши.

Вопрос - что и почему не будет работать в Java?

Исходная версия r--r--r--, :

Зачем разбирать пример, который совершенно не отражает проблему?

Давай попробуем написать пример, который отражает проблему.

Представь себе, что я автор сторонней библиотеки и реализовал оба интерфейса Beep и Boop в одном классе

Идея моего примера, что некие авторы сторонней библиотеки реализовали два разных интерфейса, как ты и просил. Интерфейсы и реализации в примере - сторонние.

Озвученная тобой проблема:

ты не можешь использовать два интерфейса сразу как тип переменной или поля класса.

В моём примере это решается через wrapper.

Твой тезис:

Проблема возникает с реализациями сразу нескольких интерфейсов. Типом variable сразу несколько интерфесов быть не могут. Можно сделать свой один интерфейс, который содержит (Go) или наследует (Java) те два интерфейса и объявить, что тип variable - это этот новый интерфейс. … В Java это работать не будет, поскольку потребует изменение всех конкретных реализаций, которые вовсе необязательно ваши.

Вопрос - что и почему не будет работать в Java?