Class Scaner

java.lang.Object
org.aoju.bus.core.lang.Scaner

public class Scaner extends Object
类扫描器
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造,默认UTF-8编码
    Scaner(String packageName)
    构造,默认UTF-8编码
    Scaner(String packageName, Predicate<Class<?>> predicate)
    构造,默认UTF-8编码
    Scaner(String packageName, Predicate<Class<?>> predicate, Charset charset)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    扫描包路径下满足class过滤器条件的所有class文件 此方法首先扫描指定包名下的资源目录,如果未扫描到,则扫描整个classpath中所有加载的类
    scan(boolean forceScanJavaClassPaths)
    扫描包路径下满足class过滤器条件的所有class文件
    static Set<Class<?>>
    扫描该包路径下所有class文件,包括其他加载的jar或者类
    static Set<Class<?>>
    scanAllPackage(String packageName, Predicate<Class<?>> classFilter)
    扫描包路径下和所有在classpath中加载的类,满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理
    static Set<Class<?>>
    scanAllPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass)
    扫描指定包路径下所有包含指定注解的类,包括其他加载的jar或者类
    static Set<Class<?>>
    scanAllPackageBySuper(String packageName, Class<?> superClass)
    扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身,包括其他加载的jar或者类
    static Set<Class<?>>
    扫描该包路径下所有class文件
    static Set<Class<?>>
    scanPackage(String packageName)
    扫描该包路径下所有class文件
    static Set<Class<?>>
    scanPackage(String packageName, Predicate<Class<?>> predicate)
    扫面包路径下满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理
    static Set<Class<?>>
    scanPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass)
    扫描指定包路径下所有包含指定注解的类
    static Set<Class<?>>
    scanPackageBySuper(String packageName, Class<?> superClass)
    扫描指定包路径下所有指定类或接口的子类或实现类
    void
    setInitialize(boolean initialize)
    设置是否在扫描到类时初始化类

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Scaner

      public Scaner()
      构造,默认UTF-8编码
    • Scaner

      public Scaner(String packageName)
      构造,默认UTF-8编码
      Parameters:
      packageName - 包名,所有包传入""或者null
    • Scaner

      public Scaner(String packageName, Predicate<Class<?>> predicate)
      构造,默认UTF-8编码
      Parameters:
      packageName - 包名,所有包传入""或者null
      predicate - 过滤器,无需传入null
    • Scaner

      public Scaner(String packageName, Predicate<Class<?>> predicate, Charset charset)
      构造
      Parameters:
      packageName - 包名,所有包传入""或者null
      predicate - 过滤器,无需传入null
      charset - 编码
  • Method Details

    • scanAllPackage

      public static Set<Class<?>> scanAllPackage()
      扫描该包路径下所有class文件,包括其他加载的jar或者类
      Returns:
      类集合
    • scanAllPackage

      public static Set<Class<?>> scanAllPackage(String packageName, Predicate<Class<?>> classFilter)
      扫描包路径下和所有在classpath中加载的类,满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理
      Parameters:
      packageName - 包路径 com | com. | com.abs | com.abs.
      classFilter - class过滤器,过滤掉不需要的class
      Returns:
      类集合
    • scanPackage

      public static Set<Class<?>> scanPackage()
      扫描该包路径下所有class文件
      Returns:
      类集合
    • scanPackage

      public static Set<Class<?>> scanPackage(String packageName)
      扫描该包路径下所有class文件
      Parameters:
      packageName - 包路径 com | com. | com.abs | com.abs.
      Returns:
      类集合
    • scanPackage

      public static Set<Class<?>> scanPackage(String packageName, Predicate<Class<?>> predicate)
      扫面包路径下满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理
      Parameters:
      packageName - 包路径 com | com. | com.abs | com.abs.
      predicate - class过滤器,过滤掉不需要的class
      Returns:
      类集合
    • scanAllPackageByAnnotation

      public static Set<Class<?>> scanAllPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass)
      扫描指定包路径下所有包含指定注解的类,包括其他加载的jar或者类
      Parameters:
      packageName - 包路径
      annotationClass - 注解类
      Returns:
      类集合
    • scanPackageByAnnotation

      public static Set<Class<?>> scanPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass)
      扫描指定包路径下所有包含指定注解的类
      Parameters:
      packageName - 包路径
      annotationClass - 注解类
      Returns:
      类集合
    • scanAllPackageBySuper

      public static Set<Class<?>> scanAllPackageBySuper(String packageName, Class<?> superClass)
      扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身,包括其他加载的jar或者类
      Parameters:
      packageName - 包路径
      superClass - 父类或接口(不包括)
      Returns:
      类集合
    • scanPackageBySuper

      public static Set<Class<?>> scanPackageBySuper(String packageName, Class<?> superClass)
      扫描指定包路径下所有指定类或接口的子类或实现类
      Parameters:
      packageName - 包路径
      superClass - 父类或接口
      Returns:
      类集合
    • scan

      public Set<Class<?>> scan()
      扫描包路径下满足class过滤器条件的所有class文件 此方法首先扫描指定包名下的资源目录,如果未扫描到,则扫描整个classpath中所有加载的类
      Returns:
      类集合
    • scan

      public Set<Class<?>> scan(boolean forceScanJavaClassPaths)
      扫描包路径下满足class过滤器条件的所有class文件
      Parameters:
      forceScanJavaClassPaths - 是否强制扫描其他位于classpath关联jar中的类
      Returns:
      类集合
    • setInitialize

      public void setInitialize(boolean initialize)
      设置是否在扫描到类时初始化类
      Parameters:
      initialize - 是否初始化类