HADOOP-16897. Sort fields in ReflectionUtils.java.

Contributed by cpugputpu.
This commit is contained in:
cpugputpu 2020-03-03 01:53:38 +08:00 committed by GitHub
parent f864ef7429
commit 5678b19b01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -31,6 +31,8 @@ import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -350,7 +352,13 @@ public class ReflectionUtils {
public static List<Field> getDeclaredFieldsIncludingInherited(Class<?> clazz) {
List<Field> fields = new ArrayList<Field>();
while (clazz != null) {
for (Field field : clazz.getDeclaredFields()) {
Field[] sortedFields = clazz.getDeclaredFields();
Arrays.sort(sortedFields, new Comparator<Field>() {
public int compare(Field a, Field b) {
return a.getName().compareTo(b.getName());
}
});
for (Field field : sortedFields) {
fields.add(field);
}
clazz = clazz.getSuperclass();