- Java code
public class User { private String name; public User() { }}
就这么一个类,name没有set方法,利用反射可以设值
- Java code
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的启动参数里面禁止这个
安全性还是可以保障的