diff --git a/src/main/java/com/alibaba/fastjson/parser/JavaBeanInfo.java b/src/main/java/com/alibaba/fastjson/parser/JavaBeanInfo.java index f9590665a..d93501b7a 100755 --- a/src/main/java/com/alibaba/fastjson/parser/JavaBeanInfo.java +++ b/src/main/java/com/alibaba/fastjson/parser/JavaBeanInfo.java @@ -466,6 +466,10 @@ class JavaBeanInfo { { classfields = new ArrayList(declaredFields.length); for (Field f : declaredFields) { + if ((f.getModifiers() & Modifier.STATIC) != 0) { + continue; + } + if ((f.getModifiers() & Modifier.PUBLIC) != 0) { classfields.add(f); } @@ -473,6 +477,10 @@ class JavaBeanInfo { for (Class c = clazz.getSuperclass(); c != null && c != Object.class; c = c.getSuperclass()) { for (Field f : c.getDeclaredFields()) { + if ((f.getModifiers() & Modifier.STATIC) != 0) { + continue; + } + if ((f.getModifiers() & Modifier.PUBLIC) != 0) { classfields.add(f); } diff --git a/src/main/java/com/alibaba/fastjson/util/TypeUtils.java b/src/main/java/com/alibaba/fastjson/util/TypeUtils.java index d450b749e..708bcc77e 100755 --- a/src/main/java/com/alibaba/fastjson/util/TypeUtils.java +++ b/src/main/java/com/alibaba/fastjson/util/TypeUtils.java @@ -1010,6 +1010,10 @@ public class TypeUtils { { classfields = new ArrayList(declaredFields.length); for (Field f : declaredFields) { + if ((f.getModifiers() & Modifier.STATIC) != 0) { + continue; + } + if ((f.getModifiers() & Modifier.PUBLIC) != 0) { classfields.add(f); } @@ -1017,6 +1021,10 @@ public class TypeUtils { for (Class c = clazz.getSuperclass(); c != null && c != Object.class; c = c.getSuperclass()) { for (Field f : c.getDeclaredFields()) { + if ((f.getModifiers() & Modifier.STATIC) != 0) { + continue; + } + if ((f.getModifiers() & Modifier.PUBLIC) != 0) { classfields.add(f); } @@ -1025,10 +1033,6 @@ public class TypeUtils { } for (Field field : classfields) { - if ((field.getModifiers() & Modifier.STATIC) != 0) { - continue; - } - JSONField fieldAnnotation = jsonFieldSupport ? field.getAnnotation(JSONField.class) : null; int ordinal = 0, serialzeFeatures = 0;