Class OpenMetadata

java.lang.Object
cloud.opencode.base.classloader.OpenMetadata

public final class OpenMetadata extends Object
OpenMetadata - Metadata Reading Facade OpenMetadata - 元数据读取门面

Unified entry point for class metadata reading without loading classes.

不加载类读取类元数据的统一入口。

Features | 主要功能:

  • Read class metadata by name - 按名称读取类元数据
  • Read class metadata from Class - 从 Class 读取类元数据
  • Read class metadata from resource - 从资源读取类元数据
  • Batch reading from package - 从包批量读取

Usage Examples | 使用示例:

// Read by class name
ClassMetadata metadata = OpenMetadata.read("com.example.MyClass");

// Read from Class object
ClassMetadata metadata = OpenMetadata.read(MyClass.class);

// Check annotations without loading
if (metadata.hasAnnotation("org.springframework.stereotype.Service")) {
    // Handle service class
}

// Batch read
List<ClassMetadata> all = OpenMetadata.readPackage("com.example");

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

    • read

      public static ClassMetadata read(String className)
      Read class metadata by class name 按类名读取类元数据
      Parameters:
      className - fully qualified class name | 完全限定类名
      Returns:
      class metadata | 类元数据
    • read

      public static ClassMetadata read(Class<?> clazz)
      Read class metadata from Class object 从 Class 对象读取类元数据
      Parameters:
      clazz - class object | 类对象
      Returns:
      class metadata | 类元数据
    • read

      public static ClassMetadata read(Resource resource)
      Read class metadata from resource 从资源读取类元数据
      Parameters:
      resource - class file resource | 类文件资源
      Returns:
      class metadata | 类元数据
    • read

      public static ClassMetadata read(byte[] bytecode)
      Read class metadata from bytecode 从字节码读取类元数据
      Parameters:
      bytecode - class bytecode | 类字节码
      Returns:
      class metadata | 类元数据
    • readPackage

      public static List<ClassMetadata> readPackage(String packageName)
      Read all class metadata from package 从包读取所有类元数据
      Parameters:
      packageName - package name | 包名
      Returns:
      list of class metadata | 类元数据列表
    • readPackage

      public static List<ClassMetadata> readPackage(String packageName, Predicate<String> classNameFilter)
      Read class metadata from package with filter 从包读取类元数据(带过滤)
      Parameters:
      packageName - package name | 包名
      classNameFilter - class name filter | 类名过滤器
      Returns:
      list of class metadata | 类元数据列表
    • reader

      public static Class<MetadataReader> reader()
      Get metadata reader for advanced usage 获取元数据读取器用于高级用法
      Returns:
      metadata reader class | 元数据读取器类