@@ -1253,23 +1253,21 @@ public static Stream<Field> streamFields(Class<?> clazz, Predicate<Field> predic
1253
1253
Preconditions .notNull (predicate , "Predicate must not be null" );
1254
1254
Preconditions .notNull (traversalMode , "HierarchyTraversalMode must not be null" );
1255
1255
1256
- return findAllFieldsInHierarchy (clazz , predicate , traversalMode ).stream ();
1256
+ return findAllFieldsInHierarchy (clazz , traversalMode ).stream (). filter ( predicate );
1257
1257
}
1258
1258
1259
- private static List <Field > findAllFieldsInHierarchy (Class <?> clazz , Predicate <Field > predicate ,
1260
- HierarchyTraversalMode traversalMode ) {
1261
-
1259
+ private static List <Field > findAllFieldsInHierarchy (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1262
1260
Preconditions .notNull (clazz , "Class must not be null" );
1263
1261
Preconditions .notNull (traversalMode , "HierarchyTraversalMode must not be null" );
1264
1262
1265
1263
// @formatter:off
1266
- List <Field > localFields = getDeclaredFields (clazz , predicate ).stream ()
1264
+ List <Field > localFields = getDeclaredFields (clazz ).stream ()
1267
1265
.filter (field -> !field .isSynthetic ())
1268
1266
.collect (toList ());
1269
- List <Field > superclassFields = getSuperclassFields (clazz , predicate , traversalMode ).stream ()
1267
+ List <Field > superclassFields = getSuperclassFields (clazz , traversalMode ).stream ()
1270
1268
.filter (field -> !isFieldShadowedByLocalFields (field , localFields ))
1271
1269
.collect (toList ());
1272
- List <Field > interfaceFields = getInterfaceFields (clazz , predicate , traversalMode ).stream ()
1270
+ List <Field > interfaceFields = getInterfaceFields (clazz , traversalMode ).stream ()
1273
1271
.filter (field -> !isFieldShadowedByLocalFields (field , localFields ))
1274
1272
.collect (toList ());
1275
1273
// @formatter:on
@@ -1532,18 +1530,18 @@ private static List<Method> findAllMethodsInHierarchy(Class<?> clazz, Predicate<
1532
1530
1533
1531
/**
1534
1532
* Custom alternative to {@link Class#getFields()} that sorts the fields
1535
- * which match the supplied predicate and converts them to a mutable list.
1533
+ * and converts them to a mutable list.
1536
1534
*/
1537
- private static List <Field > getFields (Class <?> clazz , Predicate < Field > predicate ) {
1538
- return toSortedMutableList (clazz .getFields (), predicate );
1535
+ private static List <Field > getFields (Class <?> clazz ) {
1536
+ return toSortedMutableList (clazz .getFields ());
1539
1537
}
1540
1538
1541
1539
/**
1542
1540
* Custom alternative to {@link Class#getDeclaredFields()} that sorts the
1543
- * fields which match the supplied predicate and converts them to a mutable list.
1541
+ * fields and converts them to a mutable list.
1544
1542
*/
1545
- private static List <Field > getDeclaredFields (Class <?> clazz , Predicate < Field > predicate ) {
1546
- return toSortedMutableList (clazz .getDeclaredFields (), predicate );
1543
+ private static List <Field > getDeclaredFields (Class <?> clazz ) {
1544
+ return toSortedMutableList (clazz .getDeclaredFields ());
1547
1545
}
1548
1546
1549
1547
/**
@@ -1607,10 +1605,9 @@ private static List<Method> getDefaultMethods(Class<?> clazz, Predicate<Method>
1607
1605
// @formatter:on
1608
1606
}
1609
1607
1610
- private static List <Field > toSortedMutableList (Field [] fields , Predicate < Field > predicate ) {
1608
+ private static List <Field > toSortedMutableList (Field [] fields ) {
1611
1609
// @formatter:off
1612
1610
return Arrays .stream (fields )
1613
- .filter (predicate )
1614
1611
.sorted (ReflectionUtils ::defaultFieldSorter )
1615
1612
// Use toCollection() instead of toList() to ensure list is mutable.
1616
1613
.collect (toCollection (ArrayList ::new ));
@@ -1679,15 +1676,13 @@ private static List<Method> getInterfaceMethods(Class<?> clazz, Predicate<Method
1679
1676
return allInterfaceMethods ;
1680
1677
}
1681
1678
1682
- private static List <Field > getInterfaceFields (Class <?> clazz , Predicate <Field > predicate ,
1683
- HierarchyTraversalMode traversalMode ) {
1684
-
1679
+ private static List <Field > getInterfaceFields (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1685
1680
List <Field > allInterfaceFields = new ArrayList <>();
1686
1681
for (Class <?> ifc : clazz .getInterfaces ()) {
1687
- List <Field > localInterfaceFields = getFields (ifc , predicate );
1682
+ List <Field > localInterfaceFields = getFields (ifc );
1688
1683
1689
1684
// @formatter:off
1690
- List <Field > superinterfaceFields = getInterfaceFields (ifc , predicate , traversalMode ).stream ()
1685
+ List <Field > superinterfaceFields = getInterfaceFields (ifc , traversalMode ).stream ()
1691
1686
.filter (field -> !isFieldShadowedByLocalFields (field , localInterfaceFields ))
1692
1687
.collect (toList ());
1693
1688
// @formatter:on
@@ -1703,14 +1698,12 @@ private static List<Field> getInterfaceFields(Class<?> clazz, Predicate<Field> p
1703
1698
return allInterfaceFields ;
1704
1699
}
1705
1700
1706
- private static List <Field > getSuperclassFields (Class <?> clazz , Predicate <Field > predicate ,
1707
- HierarchyTraversalMode traversalMode ) {
1708
-
1701
+ private static List <Field > getSuperclassFields (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1709
1702
Class <?> superclass = clazz .getSuperclass ();
1710
1703
if (!isSearchable (superclass )) {
1711
1704
return Collections .emptyList ();
1712
1705
}
1713
- return findAllFieldsInHierarchy (superclass , predicate , traversalMode );
1706
+ return findAllFieldsInHierarchy (superclass , traversalMode );
1714
1707
}
1715
1708
1716
1709
private static boolean isFieldShadowedByLocalFields (Field field , List <Field > localFields ) {
0 commit comments