Browse Source

optimize:field set

fuhai 6 years ago
parent
commit
8d2161bced
1 changed files with 15 additions and 3 deletions
  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();
 					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);
+					}
+				}
 			}
 			}
 		}
 		}