Как я могу получить информацию о наследовании метода? - PullRequest
0 голосов
/ 08 апреля 2011

Предположим, класс Dog расширяет абстрактный класс Animal и реализует класс Play. Затем в классе Dog реализуется унаследованный абстрактный метод Animal.eat () и Play.jump (). Представьте, что в Eclipse слева от Dog.eat () и Dog.jump () будет маленький треугольник. И если вы наведите курсор мыши на маленький треугольник, он скажет вам, что этот метод реализует, какой абстрактный метод и из какого класса.

Мне было интересно, как получить информацию о наследовании этого метода. И мой вопрос: если у меня есть набор файлов .java без какой-либо помощи IDE, как я могу извлечь информацию, наследующую тот же метод, что и Eclipse (как этот метод реализует, какой абстрактный метод из какого класса)?

Я могу думать об одном подходе: учитывая класс Dog, я сначала получаю информацию о наследовании этого класса, Animal and Play. Затем я сравниваю все сигнатуры методов из Dog и Animal / Play и вижу, что и что реализует. Но этот подход кажется немного наивным и, возможно, не очень эффективным. Поэтому, пожалуйста, дайте мне знать, если есть какой-либо хороший подход, который я могу использовать для получения информации о наследовании метода.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Вы можете использовать java Reflection , чтобы узнать суперкласс.

1 голос
/ 08 апреля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...