1.拦截类
import java.lang.reflect.Field;
public class PrivateAccessor {
public static void setValue(Class clazz,Object instance, String fieldName, Object value)
{
Field declaredField;
try {
declaredField = clazz.getDeclaredField(fieldName);
declaredField.setAccessible(true);
declaredField.set(instance, value);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.如何使用
Configuration instance = Configuration.getInstance();
PrivateAccessor.setValue(Configuration.class,instance, "RAU_NODES", "-1");
import java.lang.reflect.Field;
public class PrivateAccessor {
public static void setValue(Class clazz,Object instance, String fieldName, Object value)
{
Field declaredField;
try {
declaredField = clazz.getDeclaredField(fieldName);
declaredField.setAccessible(true);
declaredField.set(instance, value);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.如何使用
Configuration instance = Configuration.getInstance();
PrivateAccessor.setValue(Configuration.class,instance, "RAU_NODES", "-1");