У меня есть метод, который должен принимать объект обратного вызова в качестве аргумента, а затем (в тот момент, когда это необходимо) мой метод вызовет определенный метод объекта обратного вызова.
Я написал класс с именем Manager
, в котором есть метод с именем addListener
. В качестве аргумента для этого метода мне нужно использовать объект обратного вызова, который определяется внешним программным обеспечением. Итак, я определяю addListener
следующим образом: public void addListener(Listener listener)
.
Конечно, Eclipse жалуется, потому что не знает, что такое Listener
(потому что слушатель определяется внешним программным обеспечением). Единственная мысль, которую я знаю (должен знать) о Слушателе, это то, что у него есть метод с именем doSomething
. Итак, для удовольствия Eclipse я добавляю интерфейс перед моим Manager
классом:
interface Listener {
void doSomething();
}
public class CTManager {
...
Проблема, похоже, решена, но затем я пытаюсь протестировать свое программное обеспечение. Итак, я создаю класс с именем test
. В этом классе я создаю экземпляр класса Manager
и пытаюсь использовать метод addListener
этого экземпляра.
Я также создаю класс Listener
, создаю его экземпляр и передаю экземпляр addListener
. И это место, где возникает проблема. Eclipse пишет, что addListener
не применимо к данному аргументу. Я думаю, это потому, что он ожидает чего-то от моего Listenr
интерфейса, но получает что-то от Listener
класса.
Как я могу решить эту проблему?