Hi, I found out that `Collectors.joining()` can be simplified as follows: 1) `<CharSequence, StringBuilder, String>` reduced to `<>` 2) `(r1, r2) -> { r1.append(r2); return r1; }` replaced with `StringBuilder::append`
If such a small contribution is considered worthwhile, please sponsor it (patch below). Regards, Tomasz Linkowski PS. I've signed the OCA. =================================================================== --- src/java.base/share/classes/java/util/stream/Collectors.java +++ src/java.base/share/classes/java/util/stream/Collectors.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -365,9 +365,8 @@ * {@code String}, in encounter order */ public static Collector<CharSequence, ?, String> joining() { - return new CollectorImpl<CharSequence, StringBuilder, String>( - StringBuilder::new, StringBuilder::append, - (r1, r2) -> { r1.append(r2); return r1; }, + return new CollectorImpl<>( + StringBuilder::new, StringBuilder::append, StringBuilder::append, StringBuilder::toString, CH_NOID); }