Class PackageScanner

java.lang.Object
cloud.opencode.base.classloader.scanner.PackageScanner

public class PackageScanner extends Object
Package Scanner - Scans package structure 包扫描器 - 扫描包结构

Scans package structure and finds sub-packages and classes.

扫描包结构并查找子包和类。

Features | 主要功能:

  • Find sub-packages - 查找子包
  • Find classes in package - 查找包中的类
  • Recursive scanning - 递归扫描
  • Virtual thread support - 虚拟线程支持

Usage Examples | 使用示例:

PackageScanner scanner = PackageScanner.of("com.example");
Set<String> subPackages = scanner.findSubPackages();
List<Class<?>> classes = scanner.findClasses();

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 Details

    • of

      public static PackageScanner of(String basePackage)
      Create package scanner 创建包扫描器
      Parameters:
      basePackage - base package | 基础包
      Returns:
      scanner | 扫描器
    • classLoader

      public PackageScanner classLoader(ClassLoader classLoader)
      Set class loader 设置类加载器
      Parameters:
      classLoader - class loader | 类加载器
      Returns:
      this scanner | 此扫描器
    • useVirtualThreads

      public PackageScanner useVirtualThreads(boolean useVirtualThreads)
      Enable virtual threads for parallel scanning 启用虚拟线程进行并行扫描
      Parameters:
      useVirtualThreads - use virtual threads | 使用虚拟线程
      Returns:
      this scanner | 此扫描器
    • findSubPackages

      public Set<String> findSubPackages()
      Find all sub-packages 查找所有子包
      Returns:
      set of sub-package names | 子包名集合
    • findClasses

      public List<Class<?>> findClasses()
      Find all classes in package (non-recursive) 查找包中的所有类(非递归)
      Returns:
      list of classes | 类列表
    • findClasses

      public List<Class<?>> findClasses(boolean recursive)
      Find all classes in package 查找包中的所有类
      Parameters:
      recursive - include sub-packages | 包含子包
      Returns:
      list of classes | 类列表
    • findClassNames

      public List<String> findClassNames(boolean recursive)
      Find all class names in package 查找包中的所有类名
      Parameters:
      recursive - include sub-packages | 包含子包
      Returns:
      list of class names | 类名列表
    • exists

      public boolean exists()
      Check if package exists 检查包是否存在
      Returns:
      true if exists | 存在返回 true
    • getBasePackage

      public String getBasePackage()
      Get base package name 获取基础包名
      Returns:
      base package name | 基础包名