Я согласен с тем, что в общем случае результат будет не очень приятным, но это отправная точка, и именно в этом случае мне нужно именно то, что мне нужно (API, который я хочу использовать для рефрактора, фактически автоматически генерируется из другого инструмента, поэтому структура на самом деле хорошо работает). определенный и, следовательно, инструмент рефакторинга может быть довольно умным в этом случае)
я есть коллекция конкретных Классов, которые определяют API, и я хотел бы извлечь Интерфейс этих классов (то есть: по существу, иерархию типов и публичные методы) из фактической реализации API.
Так, например, если один из открытых классов в API
public class Foo extends Bar {
/* some fields which I don't care about */
public void method() {
/* implementation here */
}
public void otherMethod() {
/* implementation goes here */
}
/* some non public methods which I don't care about */
}
Я хотел бы разбить на интерфейс и реализацию
т.е.
public interface FooInterface extends BarInterface {
public void method();
public void otherMethod()
}
public class Foo implements FooInterface {
/* etc etc */
}
а также
Есть ли инструмент, который я могу использовать, чтобы сделать это разделение в автоматическом режиме, или мне придется свернуть свою собственную программу, чтобы сделать работу? Это должен быть инструмент, который требует минимального взаимодействия.