import java.util.List; import java.util.Set; import java.util.LinkedHashSet; import java.util.stream.Collectors; class ConstructorInMethodRef { class Type { Type erasure() { return null; } } private static List<Set<Type>> erased(List<Set<Type>> typeSets) { return typeSets.stream().map(set -> set.stream().map(Type::erasure) .collect(Collectors.toCollection(LinkedHashSet::new))).collect(Collectors.toList()); } private static List<Set<Type>> erased2(List<Set<Type>> typeSets) { return typeSets.stream().map(set -> set.stream().map(Type::erasure) .collect(Collectors.toCollection(() -> new LinkedHashSet<>()))).collect(Collectors.toList()); } }