Присоединение определенного поля / переменной к интерфейсу, который реализуется - PullRequest
0 голосов
/ 30 мая 2019

У меня есть интерфейс myInterface, который определяет два метода, method1, method2.Этот интерфейс реализуется 100 другими классами.Мое требование заключается в том, что я могу добавить поле в интерфейс, который уникален для каждого класса.Пример: я хочу добавить поле numberOfRequests, которое является уникальным для всех классов.Поэтому каждый раз, когда я вызываю method1, я могу обновлять numberOfRequests для этого класса.Как мне добиться этого путем внесения изменений на уровне интерфейса?

1 Ответ

0 голосов
/ 30 мая 2019

Невозможно определить экземплярные (нестатические) поля в интерфейсах.Вы можете добавить только поле static к интерфейсу, который затем принадлежит только этому интерфейсу.

Чтобы реализовать необходимые функции, вы должны добавить это поле в каждый отдельный класс, который реализует интерфейс.

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

...