@@ -1202,23 +1202,21 @@ public static Stream<Field> streamFields(Class<?> clazz, Predicate<Field> predic
1202
1202
Preconditions .notNull (predicate , "Predicate must not be null" );
1203
1203
Preconditions .notNull (traversalMode , "HierarchyTraversalMode must not be null" );
1204
1204
1205
- return findAllFieldsInHierarchy (clazz , predicate , traversalMode ).stream ();
1205
+ return findAllFieldsInHierarchy (clazz , traversalMode ).stream (). filter ( predicate );
1206
1206
}
1207
1207
1208
- private static List <Field > findAllFieldsInHierarchy (Class <?> clazz , Predicate <Field > predicate ,
1209
- HierarchyTraversalMode traversalMode ) {
1210
-
1208
+ private static List <Field > findAllFieldsInHierarchy (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1211
1209
Preconditions .notNull (clazz , "Class must not be null" );
1212
1210
Preconditions .notNull (traversalMode , "HierarchyTraversalMode must not be null" );
1213
1211
1214
1212
// @formatter:off
1215
- List <Field > localFields = getDeclaredFields (clazz , predicate ).stream ()
1213
+ List <Field > localFields = getDeclaredFields (clazz ).stream ()
1216
1214
.filter (field -> !field .isSynthetic ())
1217
1215
.collect (toList ());
1218
- List <Field > superclassFields = getSuperclassFields (clazz , predicate , traversalMode ).stream ()
1216
+ List <Field > superclassFields = getSuperclassFields (clazz , traversalMode ).stream ()
1219
1217
.filter (field -> !isFieldShadowedByLocalFields (field , localFields ))
1220
1218
.collect (toList ());
1221
- List <Field > interfaceFields = getInterfaceFields (clazz , predicate , traversalMode ).stream ()
1219
+ List <Field > interfaceFields = getInterfaceFields (clazz , traversalMode ).stream ()
1222
1220
.filter (field -> !isFieldShadowedByLocalFields (field , localFields ))
1223
1221
.collect (toList ());
1224
1222
// @formatter:on
@@ -1481,18 +1479,18 @@ private static List<Method> findAllMethodsInHierarchy(Class<?> clazz, Predicate<
1481
1479
1482
1480
/**
1483
1481
* Custom alternative to {@link Class#getFields()} that sorts the fields
1484
- * which match the supplied predicate and converts them to a mutable list.
1482
+ * and converts them to a mutable list.
1485
1483
*/
1486
- private static List <Field > getFields (Class <?> clazz , Predicate < Field > predicate ) {
1487
- return toSortedMutableList (clazz .getFields (), predicate );
1484
+ private static List <Field > getFields (Class <?> clazz ) {
1485
+ return toSortedMutableList (clazz .getFields ());
1488
1486
}
1489
1487
1490
1488
/**
1491
1489
* Custom alternative to {@link Class#getDeclaredFields()} that sorts the
1492
- * fields which match the supplied predicate and converts them to a mutable list.
1490
+ * fields and converts them to a mutable list.
1493
1491
*/
1494
- private static List <Field > getDeclaredFields (Class <?> clazz , Predicate < Field > predicate ) {
1495
- return toSortedMutableList (clazz .getDeclaredFields (), predicate );
1492
+ private static List <Field > getDeclaredFields (Class <?> clazz ) {
1493
+ return toSortedMutableList (clazz .getDeclaredFields ());
1496
1494
}
1497
1495
1498
1496
/**
@@ -1556,10 +1554,9 @@ private static List<Method> getDefaultMethods(Class<?> clazz, Predicate<Method>
1556
1554
// @formatter:on
1557
1555
}
1558
1556
1559
- private static List <Field > toSortedMutableList (Field [] fields , Predicate < Field > predicate ) {
1557
+ private static List <Field > toSortedMutableList (Field [] fields ) {
1560
1558
// @formatter:off
1561
1559
return Arrays .stream (fields )
1562
- .filter (predicate )
1563
1560
.sorted (ReflectionUtils ::defaultFieldSorter )
1564
1561
// Use toCollection() instead of toList() to ensure list is mutable.
1565
1562
.collect (toCollection (ArrayList ::new ));
@@ -1628,15 +1625,13 @@ private static List<Method> getInterfaceMethods(Class<?> clazz, Predicate<Method
1628
1625
return allInterfaceMethods ;
1629
1626
}
1630
1627
1631
- private static List <Field > getInterfaceFields (Class <?> clazz , Predicate <Field > predicate ,
1632
- HierarchyTraversalMode traversalMode ) {
1633
-
1628
+ private static List <Field > getInterfaceFields (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1634
1629
List <Field > allInterfaceFields = new ArrayList <>();
1635
1630
for (Class <?> ifc : clazz .getInterfaces ()) {
1636
- List <Field > localInterfaceFields = getFields (ifc , predicate );
1631
+ List <Field > localInterfaceFields = getFields (ifc );
1637
1632
1638
1633
// @formatter:off
1639
- List <Field > superinterfaceFields = getInterfaceFields (ifc , predicate , traversalMode ).stream ()
1634
+ List <Field > superinterfaceFields = getInterfaceFields (ifc , traversalMode ).stream ()
1640
1635
.filter (field -> !isFieldShadowedByLocalFields (field , localInterfaceFields ))
1641
1636
.collect (toList ());
1642
1637
// @formatter:on
@@ -1652,14 +1647,12 @@ private static List<Field> getInterfaceFields(Class<?> clazz, Predicate<Field> p
1652
1647
return allInterfaceFields ;
1653
1648
}
1654
1649
1655
- private static List <Field > getSuperclassFields (Class <?> clazz , Predicate <Field > predicate ,
1656
- HierarchyTraversalMode traversalMode ) {
1657
-
1650
+ private static List <Field > getSuperclassFields (Class <?> clazz , HierarchyTraversalMode traversalMode ) {
1658
1651
Class <?> superclass = clazz .getSuperclass ();
1659
1652
if (!isSearchable (superclass )) {
1660
1653
return Collections .emptyList ();
1661
1654
}
1662
- return findAllFieldsInHierarchy (superclass , predicate , traversalMode );
1655
+ return findAllFieldsInHierarchy (superclass , traversalMode );
1663
1656
}
1664
1657
1665
1658
private static boolean isFieldShadowedByLocalFields (Field field , List <Field > localFields ) {
0 commit comments