Package org.aoju.bus.core.scanner
Class ClassScaner
java.lang.Object
org.aoju.bus.core.scanner.ClassScaner
-
Constructor Summary
ConstructorsConstructorDescription构造,默认UTF-8编码ClassScaner(String packageName) 构造,默认UTF-8编码ClassScaner(String packageName, Predicate<Class<?>> predicate) 构造,默认UTF-8编码ClassScaner(String packageName, Predicate<Class<?>> predicate, Charset charset) 构造 -
Method Summary
Modifier and TypeMethodDescription忽略加载错误扫描后,可以获得之前扫描时加载错误的类名字集合protected Class<?> 加载类scan()扫描包路径下满足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或者类扫描classpath下所有class文件,如果classpath下已经有类,不再扫描其他加载的jar或者类scanPackage(String packageName) 扫描该包路径下所有class文件scanPackage(String packageName, Predicate<Class<?>> classFilter) 扫描包路径下满足class过滤器条件的所有class文件, 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理scanPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass) 扫描指定包路径下所有包含指定注解的类 如果classpath下已经有类,不再扫描其他加载的jar或者类scanPackageBySuper(String packageName, Class<?> superClass) 扫描指定包路径下所有指定类或接口的子类或实现类,不包括指定父类本身 如果classpath下已经有类,不再扫描其他加载的jar或者类voidsetClassLoader(ClassLoader classLoader) 设置自定义的类加载器voidsetIgnoreLoadError(boolean ignoreLoadError) 设置是否忽略所有错误voidsetInitialize(boolean initialize) 设置是否在扫描到类时初始化类
-
Constructor Details
-
ClassScaner
public ClassScaner()构造,默认UTF-8编码 -
ClassScaner
-
ClassScaner
-
ClassScaner
-
-
Method Details
-
scanAllPackage
-
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
-
scanPackage
-
scanPackage
扫描包路径下满足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:
- 类集合
-
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) 扫描指定包路径下所有包含指定注解的类 如果classpath下已经有类,不再扫描其他加载的jar或者类- Parameters:
packageName- 包路径annotationClass- 注解类- Returns:
- 类集合
-
scanAllPackageBySuper
-
scanPackageBySuper
-
scan
-
scan
-
getClassesOfLoadError
-
setIgnoreLoadError
public void setIgnoreLoadError(boolean ignoreLoadError) 设置是否忽略所有错误- Parameters:
ignoreLoadError- 是否忽略错误
-
setInitialize
public void setInitialize(boolean initialize) 设置是否在扫描到类时初始化类- Parameters:
initialize- 是否初始化类
-
setClassLoader
-
loadClass
-