Class ClassInfo
java.lang.Object
cloud.opencode.base.reflect.scan.ResourceInfo
cloud.opencode.base.reflect.scan.ClassInfo
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 Summary
ConstructorsConstructorDescriptionClassInfo(String resourceName, ClassLoader classLoader) Creates a ClassInfo from resource name 从资源名创建ClassInfo -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic ClassInfoCreates a ClassInfo from Class object 从Class对象创建ClassInfostatic ClassInfofromClassName(String className, ClassLoader classLoader) Creates a ClassInfo from class name 从类名创建ClassInfoGets the fully qualified class name 获取完全限定类名Gets the outer class name for inner classes 获取内部类的外部类名Gets the package name 获取包名Gets the simple class name (without package) 获取简单类名(不含包)inthashCode()booleanChecks if this is an anonymous class 检查是否为匿名类booleanChecks if this is an inner class 检查是否为内部类booleanisInPackage(String packageName) Checks if this class is in the given package 检查此类是否在给定包中booleanisInPackageOrSubpackage(String packageName) Checks if this class is in the given package or subpackage 检查此类是否在给定包或子包中booleanisLoaded()Checks if the class is already loaded 检查类是否已加载Class<?> load()Loads and returns the Class object 加载并返回Class对象toString()Methods inherited from class ResourceInfo
getClassLoader, getExtension, getResourceName, getUrl, isClassFile, isPropertiesFile, openStream, readBytes, readString, readString
-
Constructor Details
-
ClassInfo
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
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
-
getClassName
Gets the fully qualified class name 获取完全限定类名- Returns:
- the class name | 类名
-
getSimpleName
Gets the simple class name (without package) 获取简单类名(不含包)- Overrides:
getSimpleNamein classResourceInfo- Returns:
- the simple name | 简单名
-
getPackageName
Gets the package name 获取包名- Overrides:
getPackageNamein classResourceInfo- Returns:
- the package name | 包名
-
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
Gets the outer class name for inner classes 获取内部类的外部类名- Returns:
- the outer class name or null | 外部类名或null
-
isInPackage
Checks if this class is in the given package 检查此类是否在给定包中- Parameters:
packageName- the package name | 包名- Returns:
- true if in package | 如果在包中返回true
-
isInPackageOrSubpackage
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
- Overrides:
equalsin classResourceInfo
-
hashCode
public int hashCode()- Overrides:
hashCodein classResourceInfo
-
toString
- Overrides:
toStringin classResourceInfo
-