有一天,我打算在ACL模塊的源代碼在彈簧安全(3.0.x的分支),我發現,ACLImpl對象有一個私人組ACE的(以分貝表示的由1許多反射)。進一步深入瞭解代碼,我發現沒有明顯的一點就是私有的ace集合被填充。我花了一段時間來找到人口與java.lang.reflect.Field
做:Usecases的Java java.lang.reflect.Field中?
private final Field fieldAces = FieldUtils.getField(AclImpl.class, "aces");
...
fieldAces.setAccessible(true);
...
try {
fieldAces.set(acl, aces);
} catch (IllegalAccessException e) {
throw new IllegalStateException("Could not set AclImpl entries", e);
}
(所有代碼BasicLookupStrategy.java
複製) 我認爲現場主要是用來披露模糊的罐子私人領域。除了混淆代碼流之外,還有其他什麼原因嗎?
JSON結合,XML綁定,奧姆斯:所有這些訪問您的POJO領域的反射序列化/他們JSON,XML或數據庫表反序列化/。 –
我只是問自己:任何真正的,大規模的使用情況下,當不使用它? – ppeterka