From 97dda65f2bf6187f33ef94356dcb11845b68b6ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Tue, 10 May 2016 00:38:46 +0800 Subject: [PATCH] optimized getFields, fields ignore statics --- .../com/alibaba/fastjson/parser/JavaBeanInfo.java | 8 ++++++++ .../java/com/alibaba/fastjson/util/TypeUtils.java | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) 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;