У меня есть набор конкретных классов которые определяют 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 */
}
и
Есть ли инструмент, который я могу использовать, чтобы сделать это разделение автоматическим способом, или мне придется использовать собственную программу для выполнения этой работы? Это должен быть инструмент, требующий минимального взаимодействия.