# 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 [中文版](README.md) ## EST SPI Reflection Module est-spi-reflection is the reflection module of the EST SPI framework, providing reflection utilities, class scanner, and method invoker. ### Core Features #### ReflectionUtils - Reflection Utility Class Utility class providing various reflection operations including instantiation, method invocation, field access, etc. #### ClassScanner - Class Scanner Scans all classes under a specified package, supporting file system and JAR files. #### MethodInvoker - Method Invoker Method invoker with cache functionality, supporting instance method and static method invocation. ### Quick Start #### Using ReflectionUtils to Instantiate Objects ```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); } } ``` #### Using ReflectionUtils to Invoke Methods ```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); } } ``` #### Using ReflectionUtils to Access Fields ```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); } } ``` #### Using ClassScanner to Scan Classes ```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()); } } ``` #### Using MethodInvoker to Invoke Methods ```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 Dependency ```xml ltd.idcu.est.spi est-spi-reflection 1.0.0 ``` ### License MIT License