Class ClassScanner
java.lang.Object
cloud.opencode.base.classloader.scanner.ClassScanner
Class Scanner - Scans classes in specified packages
类扫描器 - 扫描指定包下的类
Scans and finds classes matching specified criteria.
扫描并查找匹配指定条件的类。
Features | 主要功能:
- Package scanning - 包扫描
- Annotation scanning - 注解扫描
- Subtype scanning - 子类型扫描
- Custom filter support - 自定义过滤器支持
Usage Examples | 使用示例:
ClassScanner scanner = ClassScanner.of("com.example");
Set<Class<?>> services = scanner.scanWithAnnotation(Service.class);
Set<Class<?>> all = scanner.scan();
Security | 安全性:
- Thread-safe: Yes - 线程安全: 是
- Null-safe: Yes - 空值安全: 是
- Since:
- JDK 25, opencode-base-classloader V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionclassLoader(ClassLoader classLoader) Set class loader 设置类加载器Return class name stream (without loading) 返回类名流(不加载类)excludePackage(String packageName) Add excluded package 添加排除包includeInnerClasses(boolean include) Set whether to include inner classes 设置是否包含内部类includeJars(boolean include) Set whether to include JAR files 设置是否包含 JAR 文件static ClassScannerof(ClassLoader classLoader, String basePackage) Create scanner with classloader 使用类加载器创建扫描器static ClassScannerCreate scanner for single package 为单个包创建扫描器static ClassScannerCreate scanner for multiple packages 为多个包创建扫描器parallel(boolean parallel) Set parallel scanning 设置并行扫描scan()Scan all classes 扫描所有类scan(ScanFilter filter) Scan with filter 使用过滤器扫描scanImplementations(Class<T> interfaceType) Scan for interface implementations 扫描接口实现scanSubTypes(Class<T> superType) Scan for subtypes 扫描子类型scanWithAnnotation(Class<? extends Annotation> annotation) Scan for classes with annotation 扫描带注解的类stream()Return class stream (lazy loading) 返回类流(懒加载)
-
Method Details
-
of
Create scanner for single package 为单个包创建扫描器- Parameters:
basePackage- base package | 基础包- Returns:
- scanner | 扫描器
-
of
Create scanner for multiple packages 为多个包创建扫描器- Parameters:
basePackages- base packages | 基础包数组- Returns:
- scanner | 扫描器
-
of
Create scanner with classloader 使用类加载器创建扫描器- Parameters:
classLoader- class loader | 类加载器basePackage- base package | 基础包- Returns:
- scanner | 扫描器
-
includeJars
Set whether to include JAR files 设置是否包含 JAR 文件- Parameters:
include- include JARs | 包含 JAR- Returns:
- this scanner | 此扫描器
-
includeInnerClasses
Set whether to include inner classes 设置是否包含内部类- Parameters:
include- include inner classes | 包含内部类- Returns:
- this scanner | 此扫描器
-
parallel
Set parallel scanning 设置并行扫描- Parameters:
parallel- enable parallel | 启用并行- Returns:
- this scanner | 此扫描器
-
excludePackage
Add excluded package 添加排除包- Parameters:
packageName- package name | 包名- Returns:
- this scanner | 此扫描器
-
classLoader
Set class loader 设置类加载器- Parameters:
classLoader- class loader | 类加载器- Returns:
- this scanner | 此扫描器
-
scan
-
scan
Scan with filter 使用过滤器扫描- Parameters:
filter- scan filter | 扫描过滤器- Returns:
- set of matching classes | 匹配的类集合
-
scanWithAnnotation
Scan for classes with annotation 扫描带注解的类- Parameters:
annotation- annotation class | 注解类- Returns:
- set of annotated classes | 带注解的类集合
-
scanSubTypes
-
scanImplementations
-
stream
-
classNameStream
-