Class MethodScanner

All Implemented Interfaces:
AnnotationScanner

public class MethodScanner extends AbstractTypeScanner<MethodScanner> implements AnnotationScanner
扫描Method上的注解
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • MethodScanner

      public MethodScanner(boolean scanSameSignatureMethod, Predicate<Class<?>> filter, Set<Class<?>> excludeTypes)
      构造一个方法注解扫描器
      Parameters:
      scanSameSignatureMethod - 是否扫描类层级结构中具有相同方法签名的方法
      filter - 过滤器
      excludeTypes - 不包含的类型
    • MethodScanner

      public MethodScanner(boolean scanSameSignatureMethod)
      构造一个类注解扫描器
      Parameters:
      scanSameSignatureMethod - 是否扫描类层级结构中具有相同方法签名的方法
    • MethodScanner

      public MethodScanner()
      构造一个类注解扫描器,仅扫描该方法上直接声明的注解
  • Method Details

    • support

      public boolean support(AnnotatedElement annotatedEle)
      判断是否支持扫描该注解元素,仅当注解元素是Method时返回true
      Specified by:
      support in interface AnnotationScanner
      Parameters:
      annotatedEle - AnnotatedElement,可以是Class、Method、Field、Constructor、ReflectPermission
      Returns:
      boolean 是否支持扫描该注解元素
    • getClassFormAnnotatedElement

      protected Class<?> getClassFormAnnotatedElement(AnnotatedElement annotatedElement)
      获取声明该方法的类
      Specified by:
      getClassFormAnnotatedElement in class AbstractTypeScanner<MethodScanner>
      Parameters:
      annotatedElement - 注解元素
      Returns:
      要递归的类型
      See Also:
    • getAnnotationsFromTargetClass

      protected Annotation[] getAnnotationsFromTargetClass(AnnotatedElement source, int index, Class<?> targetClass)
      若父类/父接口中方法具有相同的方法签名,则返回该方法上的注解
      Specified by:
      getAnnotationsFromTargetClass in class AbstractTypeScanner<MethodScanner>
      Parameters:
      source - 原始方法
      index - 类的层级索引
      targetClass - 类
      Returns:
      最终所需的目标注解
    • setScanSameSignatureMethod

      public MethodScanner setScanSameSignatureMethod(boolean scanSuperMethodIfOverride)
      设置是否扫描类层级结构中具有相同方法签名的方法
      Parameters:
      scanSuperMethodIfOverride - 是否扫描类层级结构中具有相同方法签名的方法
      Returns:
      当前实例