выбор методов текущего класса, а не наследуемого класса - PullRequest
2 голосов
/ 25 мая 2011

Предположим, у меня есть следующие классы:

class A{
  void f();
}

class B extends A{
  void g();
}

что я получу, когда сделаю:

Class.forename("B").getMethods();

получу ли я методы f и g ????

если да, то как получить только методы текущего класса, а не его родительского класса (в этом примере метод g()) ????

спасибо, лоб!

Ответы [ 2 ]

8 голосов
/ 25 мая 2011

Используйте Class.getDeclaredMethods вместо getMethods.

Это (методы, возвращаемые getDeclaredMethods) включает в себя public, protected, default (пакет) доступ и private методов, но исключает унаследованные методы.

0 голосов
/ 25 мая 2011

Используйте getDeclaredMethods () api.

из справочника Java API -

Возвращает массив объектов Method, отражающих все методы, объявленные классом или интерфейсом, представленным этим объектом Class. Это включает в себя открытый, защищенный, доступ по умолчанию (пакетный) и закрытые методы, но исключает унаследованные методы.

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