aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util')
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraLists.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraLists.java b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
index 1951868..de28f21 100644
--- a/src/main/java/org/zwobble/couscous/util/ExtraLists.java
+++ b/src/main/java/org/zwobble/couscous/util/ExtraLists.java
@@ -20,6 +20,13 @@ public class ExtraLists {
}
@SuppressWarnings("unchecked")
+ public static <T, R extends T> List<R> ofType(List<T> list, Class<R> clazz) {
+ return (List<R>)list.stream()
+ .filter(clazz::isInstance)
+ .collect(Collectors.toList());
+ }
+
+ @SuppressWarnings("unchecked")
public static <T, R, E extends Exception> List<R> flatMap(
Stream<T> stream,
CheckedFunction<T, Iterable<R>, E> function) throws E {