java反射工具Reflections用法

一、引入maven依赖

    <dependency>       <groupId>org.reflections</groupId>       <artifactId>reflections</artifactId>       <version>0.9.10</version>    </dependency>

二、用法示例:

reflections 中蕴含很多的Scanner ,也就是扫描器,调用对应的办法时须要有配置对应的扫描器,不然程序会抛出异样.

//扫描蕴含my.package的url,包含'my.package'结尾的包门路,应用默认扫描器Reflections reflections = new Reflections("my.package");
public class testReflections {    private static final Reflections reflections;    static {    //如果不加filterInputsBy,那么会扫描classpath,获取以后扫描门路所在我的项目的所有包        reflections= new Reflections(new ConfigurationBuilder()                .forPackages("com.study.demo")//指定扫描门路                .filterInputsBy(new FilterBuilder().excludePackage("mystu")) //排除某个包,留神不能是扫描包子包,否则不失效                .setScanners(new MethodParameterScanner())// 增加办法参数扫描工具,能够依据须要增加多个扫描工具              );    }    public static void main(String[] args) {        // 1、依据办法参数,反射获取扫描门路下所有匹配的办法        Set<Method> methodsMatchParams = reflections.getMethodsMatchParams(String.class);        methodsMatchParams.forEach(System.out::println);    }}