java反射如何调整
使用反射调整Java类或对象
反射允许在运行时检查和修改类、方法、字段等。通过反射可以动态调用方法、访问字段、创建实例等。
获取Class对象
通过Class.forName()或对象实例的getClass()方法获取目标类的Class对象:
Class<?> clazz = Class.forName("com.example.TargetClass");
Class<?> clazz = targetObject.getClass();
动态创建实例
使用newInstance()或构造器创建对象实例:

Object instance = clazz.newInstance();
Constructor<?> constructor = clazz.getConstructor(String.class);
Object instance = constructor.newInstance("paramValue");
访问和修改字段
通过getField()或getDeclaredField()获取字段,并可修改其值:
Field field = clazz.getDeclaredField("fieldName");
field.setAccessible(true);
field.set(instance, newValue);
Object value = field.get(instance);
动态调用方法
通过getMethod()获取方法并调用:

Method method = clazz.getMethod("methodName", String.class, int.class);
Object result = method.invoke(instance, "arg1", 123);
处理私有成员
通过setAccessible(true)突破访问限制:
Method privateMethod = clazz.getDeclaredMethod("privateMethod");
privateMethod.setAccessible(true);
privateMethod.invoke(instance);
泛型处理
反射会擦除泛型信息,需通过类型转换处理:
List<String> list = (List<String>) clazz.newInstance();
性能优化
频繁反射操作应考虑缓存反射结果:
private static final Method cachedMethod;
static {
cachedMethod = TargetClass.class.getMethod("methodName");
}






