java – 有更有效的方法来获取注释方法吗?

前端之家收集整理的这篇文章主要介绍了java – 有更有效的方法来获取注释方法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始“为了好玩,没人知道,没人在乎”开源项目( LinkSet).

在一个地方,我需要得到一个注释的方法.

有比这更有效的方式吗?我的意思是没有需要迭代每个方法

for (final Method method : cls.getDeclaredMethods()) {

    final HandlerMethod handler = method.getAnnotation(HandlerMethod.class);
        if (handler != null) {
                return method;
          }
        }

解决方法

看看 Reflections(依赖: GuavaJavassist).这是一个已经优化了这一切的图书馆.有一个 Reflections#getMethodsAnnotatedWith()适合您的功能要求.

这是一个SSCCE,只是copy’n’paste’n’run它.

package com.stackoverflow;

import java.lang.reflect.Method;
import java.util.Set;

import org.reflections.Reflections;
import org.reflections.scanners.MethodAnnotationsScanner;
import org.reflections.util.ClasspathHelper;
import org.reflections.util.ConfigurationBuilder;

public class Test {

    @Deprecated
    public static void main(String[] args) {
        Reflections reflections = new Reflections(new ConfigurationBuilder()
            .setUrls(ClasspathHelper.forPackage("com.stackoverflow"))
            .setScanners(new MethodAnnotationsScanner()));
        Set<Method> methods = reflections.getMethodsAnnotatedWith(Deprecated.class);
        System.out.println(methods);
    }

}

猜你在找的Java相关文章