import java.util.List; import java.util.stream.Stream; class LeastUpperBoundTest { void f(Stream klasses) { klasses.flatMap(d -> concat(Stream.of(d), d.getMethods().stream(), d.getMethods().stream())); } @SafeVarargs private static Stream concat(Stream... streams) { return null; } } interface Node {} interface A {} interface B {} interface C {} interface D {} interface E {} interface E1 {} interface E2 {} class Klass implements Node, A, B, C, D, E, E1 { public List getMethods() { return null; } } class Method implements Node, A, B, C, D, E, E1 {}