public class User {
private String name;
public User() {
}
}
就这么一个类,name没有set方法,利用反射可以设值 protected final void injectField(Object source, String fieldName, Object fieldValue) {
try {
Field field = source.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
field.set(source, fieldValue);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
这样破坏了user的安全性了么?
但是可以在jvm的启动参数里面禁止这个
安全性还是可以保障的