关于java:java反射工具Reflections用法

41次阅读

共计 885 个字符,预计需要花费 3 分钟才能阅读完成。

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);
    }
}

正文完
 0