Skip to content

Commit b953006

Browse files
committed
修复读取父类字段问题.
1 parent 0fc965c commit b953006

File tree

1 file changed

+4
-3
lines changed
  • api-boot-project/api-boot-plugins/api-boot-plugin-resource-load/src/main/java/org/minbox/framework/api/boot/plugin/resource/load/pusher

1 file changed

+4
-3
lines changed

api-boot-project/api-boot-plugins/api-boot-plugin-resource-load/src/main/java/org/minbox/framework/api/boot/plugin/resource/load/pusher/ResourcePusher.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.minbox.framework.api.boot.plugin.resource.load.loader.ResourceFieldLoader;
2525
import org.minbox.framework.api.boot.plugin.resource.load.model.ResourcePushField;
2626
import org.springframework.util.ObjectUtils;
27+
import org.springframework.util.ReflectionUtils;
2728

2829
import java.lang.reflect.Field;
2930
import java.lang.reflect.Method;
@@ -156,12 +157,12 @@ else if (resourceField.isList()) {
156157
* @return
157158
* @throws NoSuchFieldException
158159
*/
159-
private static Field getSourceField(Method method, Class objectClass, String sourceFieldName,String resourceFieldName) throws NoSuchFieldException {
160+
private static Field getSourceField(Method method, Class objectClass, String sourceFieldName, String resourceFieldName) throws NoSuchFieldException {
160161
// cache from memory
161162
ResourcePushField resourcePushField = ApiBootResourceContext.getPushFieldFromCache(method, resourceFieldName);
162163
// if don't have source field from cache
163164
if (ObjectUtils.isEmpty(resourcePushField) || ObjectUtils.isEmpty(resourcePushField.getSourceField())) {
164-
Field sourceField = objectClass.getDeclaredField(sourceFieldName);
165+
Field sourceField = ReflectionUtils.findField(objectClass, sourceFieldName);
165166
if (!sourceField.isAccessible()) {
166167
sourceField.setAccessible(true);
167168
}
@@ -189,7 +190,7 @@ private static Field getResourceField(Method method, Class objectClass, String r
189190
ResourcePushField resourcePushField = ApiBootResourceContext.getPushFieldFromCache(method, resourceFieldName);
190191
// if don't have source field from cache
191192
if (ObjectUtils.isEmpty(resourcePushField) || ObjectUtils.isEmpty(resourcePushField.getResourceField())) {
192-
Field resourceFieldInstance = objectClass.getDeclaredField(resourceFieldName);
193+
Field resourceFieldInstance = ReflectionUtils.findField(objectClass, resourceFieldName);
193194
if (!resourceFieldInstance.isAccessible()) {
194195
resourceFieldInstance.setAccessible(true);
195196
}

0 commit comments

Comments
 (0)