# est-spi-reflection **Repository Path**: est-spi/reflection ## Basic Information - **Project Name**: est-spi-reflection - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EST SPI Reflection [English Version](README.en.md) ## EST SPI 反射模块 est-spi-reflection 是 EST SPI 框架的反射模块,提供了反射工具、类扫描器和方法调用器。 ### 核心功能 #### ReflectionUtils - 反射工具类 提供各种反射操作的工具类,包括实例化、方法调用、字段访问等。 #### ClassScanner - 类扫描器 扫描指定包下的所有类,支持文件系统和JAR包。 #### MethodInvoker - 方法调用器 带缓存功能的方法调用器,支持实例方法和静态方法调用。 ### 快速开始 #### 使用ReflectionUtils实例化对是? ```java import ltd.idcu.est.spi.reflection.ReflectionUtils; public class Example { public static void main(String[] args) { MyClass instance = ReflectionUtils.newInstance(MyClass.class); System.out.println("Instance created: " + instance); MyClass instanceWithArgs = ReflectionUtils.newInstance(MyClass.class, "param1", 123); System.out.println("Instance with args created: " + instanceWithArgs); } } ``` #### 使用ReflectionUtils调用方法 ```java import ltd.idcu.est.spi.reflection.ReflectionUtils; public class Example { public static void main(String[] args) { MyClass instance = new MyClass(); Object result = ReflectionUtils.invokeMethod(instance, "publicMethod"); System.out.println("Result: " + result); Object resultWithParams = ReflectionUtils.invokeMethod(instance, "methodWithParams", "hello", 456); System.out.println("Result with params: " + resultWithParams); } } ``` #### 使用ReflectionUtils访问字段 ```java import ltd.idcu.est.spi.reflection.ReflectionUtils; public class Example { public static void main(String[] args) { MyClass instance = new MyClass(); Object value = ReflectionUtils.getFieldValue(instance, "privateField"); System.out.println("Field value: " + value); ReflectionUtils.setFieldValue(instance, "privateField", "newValue"); Object newValue = ReflectionUtils.getFieldValue(instance, "privateField"); System.out.println("New field value: " + newValue); } } ``` #### 使用ClassScanner扫描是? ```java import ltd.idcu.est.spi.reflection.ClassScanner; import java.util.List; public class Example { public static void main(String[] args) { List> allClasses = ClassScanner.scan("com.example.package"); System.out.println("Found classes: " + allClasses.size()); List> implementations = ClassScanner.scan("com.example.package", MyInterface.class); System.out.println("Found implementations: " + implementations.size()); } } ``` #### 使用MethodInvoker调用方法 ```java import ltd.idcu.est.spi.reflection.MethodInvoker; public class Example { public static void main(String[] args) { MyClass instance = new MyClass(); Object result = MethodInvoker.invoke(instance, "publicMethod"); System.out.println("Result: " + result); Object staticResult = MethodInvoker.invokeStatic(MyClass.class, "staticMethod"); System.out.println("Static result: " + staticResult); System.out.println("Cache size: " + MethodInvoker.getCacheSize()); MethodInvoker.clearCache(); } } ``` ### Maven 依赖 ```xml ltd.idcu.est.spi est-spi-reflection 1.0.0 ``` ### 许可证 MIT License