浏览代码

optimize:field set

fuhai 6 年之前
父节点
当前提交
8d2161bced
共有 1 个文件被更改,包括 15 次插入3 次删除
  1. 15 3
      src/main/java/com/jfinal/aop/AopFactory.java

+ 15 - 3
src/main/java/com/jfinal/aop/AopFactory.java

@@ -162,9 +162,21 @@ public class AopFactory {
 					fieldInjectedClass = field.getType();
 				}
 				
-				Object fieldInjectedObject = doGet(fieldInjectedClass);
-				field.setAccessible(true);
-				field.set(targetObject, fieldInjectedObject);
+				// Object fieldInjectedObject = doGet(fieldInjectedClass);
+				// field.setAccessible(true);
+				// field.set(targetObject, fieldInjectedObject);
+
+				boolean accessible = filed.isAccessible();
+				if (accessible) {
+					filed.set(targetObject, fieldInjectedObject);
+				} else {
+					try {
+						filed.setAccessible(true);
+						filed.set(targetObject, fieldInjectedObject);
+					} finally {
+						filed.setAccessible(false);
+					}
+				}
 			}
 		}