Java
Generic
抽象泛型工具类,用于在运行时解析泛型参数的实际类型。
通过匿名子类捕获泛型类型参数("钻石"语法),然后扫描类层次结构中的类型变量到实际类型的映射关系,最终解析出具体的泛型类型。
- Module:
core - Type:
abstract class - Package:
com.euonia.reflection - Author: damon(zhaorong@outlook.com)
Type Parameters¶
| Parameter | Bound | Description |
|---|---|---|
C |
(无) | 要解析的泛型类型 |
Methods¶
Generic (constructor)¶
使用指定的上下文类构造 Generic 实例,并捕获泛型参数。
- Parameters:
context(Class<?>): 上下文类
forType¶
为指定类型创建静态的 Generic 实例。
- Parameters:
type(Class<T>): 类型的 Class- Returns:
Generic<T>- 新的 Generic 实例 - Type Parameters:
T: 要解析的类型
resolve¶
解析泛型参数的实际类型,结果会被缓存。
- Returns:
Class<? super C>- 解析后的具体类
setCache¶
设置泛型解析缓存,用于测试或自定义缓存策略。
- Parameters:
cache(ConcurrentHashMap<Generic<?>, Type>): 新的缓存映射
Usage¶
// 为指定类型创建 Generic 实例
Generic<MyService> generic = Generic.forType(MyService.class);
// 解析泛型参数的实际类型
Class<? super MyService> resolved = generic.resolve();