This commit is contained in:
高铁
2016-05-07 03:46:00 +08:00
parent ae1d1632ea
commit 6f5465c1e8
2 changed files with 25 additions and 11 deletions
@@ -462,24 +462,22 @@ class JavaBeanInfo {
}
}
Field[] classfields;
List<Field> classfields;
{
List<Field> result = new ArrayList<Field>(declaredFields.length);
classfields = new ArrayList<Field>(declaredFields.length);
for (Field f : declaredFields) {
if ((f.getModifiers() & Modifier.PUBLIC) != 0) {
result.add(f);
classfields.add(f);
}
}
for (Class<?> c = clazz.getSuperclass(); c != null && c != Object.class; c = c.getSuperclass()) {
for (Field f : c.getDeclaredFields()) {
if ((f.getModifiers() & Modifier.PUBLIC) != 0) {
result.add(f);
classfields.add(f);
}
}
}
classfields = new Field[result.size()];
result.toArray(classfields);
}
for (Field field : classfields) {
@@ -819,10 +819,9 @@ public class TypeUtils {
boolean jsonFieldSupport, //
boolean fieldGenericSupport) {
Map<String, FieldInfo> fieldInfoMap = new LinkedHashMap<String, FieldInfo>();
Field[] declaredFields = clazz.getDeclaredFields();
if (!fieldOnly) {
Field[] declaredFields = clazz.getDeclaredFields();
for (Method method : clazz.getMethods()) {
String methodName = method.getName();
int ordinal = 0, serialzeFeatures = 0;
@@ -1007,8 +1006,25 @@ public class TypeUtils {
}
}
//
for (Field field : clazz.getFields()) {
List<Field> classfields;
{
classfields = new ArrayList<Field>(declaredFields.length);
for (Field f : declaredFields) {
if ((f.getModifiers() & Modifier.PUBLIC) != 0) {
classfields.add(f);
}
}
for (Class<?> c = clazz.getSuperclass(); c != null && c != Object.class; c = c.getSuperclass()) {
for (Field f : c.getDeclaredFields()) {
if ((f.getModifiers() & Modifier.PUBLIC) != 0) {
classfields.add(f);
}
}
}
}
for (Field field : classfields) {
if ((field.getModifiers() & Modifier.STATIC) != 0) {
continue;
}