Class ClassInfo

java.lang.Object
cloud.opencode.base.reflect.scan.ResourceInfo
cloud.opencode.base.reflect.scan.ClassInfo

public class ClassInfo extends ResourceInfo
Class Information Holder 类信息持有者

Holds information about a class discovered during scanning. Allows lazy loading of the actual Class object.

持有扫描期间发现的类的信息。 允许延迟加载实际的Class对象。

Features | 主要功能:

  • Class name and package extraction - 类名和包提取
  • Lazy class loading - 延迟类加载
  • Class metadata filtering - 类元数据过滤

Usage Examples | 使用示例:

ClassInfo info = ClassInfo.of("com.example.User", classLoader);
String className = info.getClassName();
Class<?> clazz = info.load();

Security | 安全性:

  • Thread-safe: Yes (volatile lazy loading) - 线程安全: 是(volatile延迟加载)
  • Null-safe: No (resource name and class loader must be non-null) - 空值安全: 否(资源名和类加载器须非空)
Since:
JDK 25, opencode-base-reflect V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • ClassInfo

      public ClassInfo(String resourceName, ClassLoader classLoader)
      Creates a ClassInfo from resource name 从资源名创建ClassInfo
      Parameters:
      resourceName - the resource name (e.g., com/example/Foo.class) | 资源名
      classLoader - the class loader | 类加载器
  • Method Details

    • fromClassName

      public static ClassInfo fromClassName(String className, ClassLoader classLoader)
      Creates a ClassInfo from class name 从类名创建ClassInfo
      Parameters:
      className - the class name (e.g., com.example.Foo) | 类名
      classLoader - the class loader | 类加载器
      Returns:
      the ClassInfo | ClassInfo
    • fromClass

      public static ClassInfo fromClass(Class<?> clazz)
      Creates a ClassInfo from Class object 从Class对象创建ClassInfo
      Parameters:
      clazz - the class | 类
      Returns:
      the ClassInfo | ClassInfo
    • getClassName

      public String getClassName()
      Gets the fully qualified class name 获取完全限定类名
      Returns:
      the class name | 类名
    • getSimpleName

      public String getSimpleName()
      Gets the simple class name (without package) 获取简单类名(不含包)
      Overrides:
      getSimpleName in class ResourceInfo
      Returns:
      the simple name | 简单名
    • getPackageName

      public String getPackageName()
      Gets the package name 获取包名
      Overrides:
      getPackageName in class ResourceInfo
      Returns:
      the package name | 包名
    • load

      public Class<?> load()
      Loads and returns the Class object 加载并返回Class对象
      Returns:
      the Class | 类
      Throws:
      OpenReflectException - if class cannot be loaded | 如果类无法加载
    • isLoaded

      public boolean isLoaded()
      Checks if the class is already loaded 检查类是否已加载
      Returns:
      true if loaded | 如果已加载返回true
    • isInnerClass

      public boolean isInnerClass()
      Checks if this is an inner class 检查是否为内部类
      Returns:
      true if inner class | 如果是内部类返回true
    • isAnonymousClass

      public boolean isAnonymousClass()
      Checks if this is an anonymous class 检查是否为匿名类
      Returns:
      true if anonymous | 如果是匿名类返回true
    • getOuterClassName

      public String getOuterClassName()
      Gets the outer class name for inner classes 获取内部类的外部类名
      Returns:
      the outer class name or null | 外部类名或null
    • isInPackage

      public boolean isInPackage(String packageName)
      Checks if this class is in the given package 检查此类是否在给定包中
      Parameters:
      packageName - the package name | 包名
      Returns:
      true if in package | 如果在包中返回true
    • isInPackageOrSubpackage

      public boolean isInPackageOrSubpackage(String packageName)
      Checks if this class is in the given package or subpackage 检查此类是否在给定包或子包中
      Parameters:
      packageName - the package name | 包名
      Returns:
      true if in package or subpackage | 如果在包或子包中返回true
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class ResourceInfo
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class ResourceInfo
    • toString

      public String toString()
      Overrides:
      toString in class ResourceInfo