Может ли Eclipse автоматически сгенерировать интерфейс стороннего библиотечного класса? - PullRequest
10 голосов
/ 15 июня 2011

Я работаю с классом Apache FTPClient в библиотеке Apache commons net. К сожалению, он не реализует интерфейс для большей части функциональности, что затрудняет тестирование классов, которые его используют. Итак, я подумал, что создам свой собственный класс, который обернет этот класс и реализует интерфейс. Во всяком случае, это фон. Мой вопрос: возможно ли в Eclipse генерировать интерфейс (аналогично Refactor-> Extract Interface), но для стороннего кода, находящегося в jar-файле?

Просто чтобы уточнить, я не ищу FTPClient для реализации нового интерфейса, а создаю интерфейс, который имитирует тот же общедоступный API, что и FTPClient. Затем я могу создать свой собственный класс, который реализует этот интерфейс и упаковывает FTPClient.

1 Ответ

18 голосов
/ 15 июня 2011

Hm.Почему бы не начать с пустого класса, например

class MyWrapper {

    private Referent client;
}

Затем я бы сделал «Source -> Generate Delegate Methods», заполнив пустой класс делегированием вызовов базовому исходному объекту, когда они мне нужны.Из этого класса вы можете теперь «Refactor -> Extract interface» ... Поскольку в любом случае вам нужен обертка для производства, это решит обе проблемы (генерация обертки + генерация интерфейса) одновременно.

...