diff --git a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/BeanUtils.java b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/BeanUtils.java index c73f1600..8935bc32 100644 --- a/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/BeanUtils.java +++ b/weixin-java-common/src/main/java/me/chanjar/weixin/common/util/BeanUtils.java @@ -8,6 +8,8 @@ import me.chanjar.weixin.common.bean.result.WxError; import me.chanjar.weixin.common.exception.WxErrorException; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -28,7 +30,9 @@ public class BeanUtils { public static void checkRequiredFields(Object bean) throws WxErrorException { List nullFields = Lists.newArrayList(); - for (Field field : bean.getClass().getDeclaredFields()) { + List fields = new ArrayList<>( Arrays.asList(bean.getClass().getDeclaredFields())); + fields.addAll(Arrays.asList(bean.getClass().getSuperclass().getDeclaredFields())); + for (Field field : fields) { try { boolean isAccessible = field.isAccessible(); field.setAccessible(true); @@ -55,7 +59,9 @@ public class BeanUtils { */ public static Map xmlBean2Map(Object bean) { Map result = Maps.newHashMap(); - for (Field field : bean.getClass().getDeclaredFields()) { + List fields = new ArrayList<>( Arrays.asList(bean.getClass().getDeclaredFields())); + fields.addAll(Arrays.asList(bean.getClass().getSuperclass().getDeclaredFields())); + for (Field field : fields) { try { boolean isAccessible = field.isAccessible(); field.setAccessible(true);