RFR: 8180352: Add Stream.toList() method

Alan Snyder javalists at cbfiddle.com
Sun Nov 8 18:04:13 UTC 2020



> On Nov 8, 2020, at 3:32 AM, forax at univ-mlv.fr wrote:
> 
> It's a strawman but the effect is real, the more interfaces you have the less you can reuse code because the code is written with the wrong interface for your use case. 

There are points of compromise. If someone can accept misbehavior, they can use interfaces that are pure access interfaces, such as Iterator and Stream.

> Following the same reasoning, you can say that having interfaces saying that collections are null hostile is even more important because it alleviate the issue with NullPointerException. 

My own immutable collection classes are also null-intolerant. No explosion there. Use Optional instead.

> Array vs List is not something we can be very proud of, by example in java.lang.invoke, we have several methods that are duplicated only because of this dichotomy. 
> File vs Path is less an issue because it's between implementation classes, not interfaces, anyway, you still have a number of methods inside java.io/java.nio <http://java.io/java.nio> that are duplicated.

Progress with backwards compatibility requires some duplication. It is nothing to be ashamed about.

I’m more ashamed that Type<> notation cannot be used with arrays and [] notation cannot be used with Lists.

  Alan



More information about the core-libs-dev mailing list