Получение всех методов пакета

315
12 ноября 2017, 14:47

Как узнать все методы пакета? С помощью Reflections понял, как получить методы класса, но как получить все методы пакета?

Answer 1

Рефлексия - это механизм, с помощью которого можно на этапе выполнения работать с классами и объектами, неизвестными на этапе компиляции. Если Вам надо искать пакеты и их содержимое, обратитесь не к рефлексии , а к пакету IO, ведь пакет по сути - не что иное, как обычная папка. Берите относительный путь, пробуйте докопаться до нужного пакета, хранящего классы, получайте их список, формируйте имена, а потом по имени класса рефлексией получайте методы каждого из них. А искать методы пакета... Ну таких просто не бывает, методы бывают только в классе. А вообще задача ваша изначально странная.

Answer 2

1) Найти все классы данного пакета, например так (не проверял, но должно выдавать, то что вам надо)

Reflections reflections = new Reflections(ClasspathHelper
   .forPackage("my.package.prefix"), new SubTypesScanner());
Set<Class<?>> subTypes = reflections.getSubTypesOf(Object.class);

2) Получить все методы от всех классов (но это вы уже вроде знаете):

Set<Method> result = new HashSet<>();
for(Class cls: subTypes) {
   result.addAll(Arrays.asList(cls.getDeclaredMethods()));
   result.addAll(Arrays.asList(cls.getMethods())); 
   // важно использовать обе метода, так как getMethods возвращает 
   // только публичные методы, включая унаследованные, а getDeclaredMethods 
   // возвращает и приватные, протектед методы, но не унаследованные 
} 
READ ALSO
Запись трёх полей в массив

Запись трёх полей в массив

Пытаюсь записать в двухмерный массив 3 параметраКомпилятор пишет, что

226
SelectNodes в HtmlNodeCollection (HTMLAgilityPack)

SelectNodes в HtmlNodeCollection (HTMLAgilityPack)

Добрый день! Изучаю парсерыСтолкнулся с проблемой, что при:

216
Основы создания движения персонажа

Основы создания движения персонажа

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

236
Работа Threadpool c#

Работа Threadpool c#

Здравствуйте, я сейчас занимаюсь изучением Threadpool вnet

293