void (Comparator<Foo> compareTo) { Collectinator<Foo, ?, Optional<Foo>> foo = new Collectinator< >(Collectors.maxBy(compareTo)); Collectinator<Foo, ?, Optional<Foo>> foo1 = Collectinator.create(Collectors.maxBy(compareTo)); }