Package org.aoju.bus.core.lang
Class Scaner
java.lang.Object
org.aoju.bus.core.lang.Scaner
类扫描器
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionscan()扫描包路径下满足class过滤器条件的所有class文件 此方法首先扫描指定包名下的资源目录,如果未扫描到,则扫描整个classpath中所有加载的类scan(boolean forceScanJavaClassPaths) 扫描包路径下满足class过滤器条件的所有class文件扫描该包路径下所有class文件,包括其他加载的jar或者类scanAllPackage(String packageName, Predicate<Class<?>> classFilter) 扫描包路径下和所有在classpath中加载的类,满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理scanAllPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass) 扫描指定包路径下所有包含指定注解的类,包括其他加载的jar或者类scanAllPackageBySuper(String packageName, Class<?> superClass) 扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身,包括其他加载的jar或者类扫描该包路径下所有class文件scanPackage(String packageName) 扫描该包路径下所有class文件scanPackage(String packageName, Predicate<Class<?>> predicate) 扫面包路径下满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理scanPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass) 扫描指定包路径下所有包含指定注解的类scanPackageBySuper(String packageName, Class<?> superClass) 扫描指定包路径下所有指定类或接口的子类或实现类voidsetInitialize(boolean initialize) 设置是否在扫描到类时初始化类
-
Constructor Details
-
Scaner
public Scaner()构造,默认UTF-8编码 -
Scaner
构造,默认UTF-8编码- Parameters:
packageName- 包名,所有包传入""或者null
-
Scaner
构造,默认UTF-8编码- Parameters:
packageName- 包名,所有包传入""或者nullpredicate- 过滤器,无需传入null
-
Scaner
构造- Parameters:
packageName- 包名,所有包传入""或者nullpredicate- 过滤器,无需传入nullcharset- 编码
-
-
Method Details
-
scanAllPackage
扫描该包路径下所有class文件,包括其他加载的jar或者类- Returns:
- 类集合
-
scanAllPackage
扫描包路径下和所有在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
扫描该包路径下所有class文件- Returns:
- 类集合
-
scanPackage
扫描该包路径下所有class文件- Parameters:
packageName- 包路径 com | com. | com.abs | com.abs.- Returns:
- 类集合
-
scanPackage
扫面包路径下满足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
扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身,包括其他加载的jar或者类- Parameters:
packageName- 包路径superClass- 父类或接口(不包括)- Returns:
- 类集合
-
scanPackageBySuper
扫描指定包路径下所有指定类或接口的子类或实现类- Parameters:
packageName- 包路径superClass- 父类或接口- Returns:
- 类集合
-
scan
扫描包路径下满足class过滤器条件的所有class文件 此方法首先扫描指定包名下的资源目录,如果未扫描到,则扫描整个classpath中所有加载的类- Returns:
- 类集合
-
scan
扫描包路径下满足class过滤器条件的所有class文件- Parameters:
forceScanJavaClassPaths- 是否强制扫描其他位于classpath关联jar中的类- Returns:
- 类集合
-
setInitialize
public void setInitialize(boolean initialize) 设置是否在扫描到类时初始化类- Parameters:
initialize- 是否初始化类
-