On 9/21/18 12:22 PM, Alan Bateman wrote:
On 18/09/2018 18:52, Jim Laskey wrote:
Please review the code for String::transform. The goal is to provide a String instance method to allow function application of custom transformations applied to an instance of String.

webrev: http://cr.openjdk.java.net/~jlaskey/8203442/webrev/index.html
jbs: https://bugs.openjdk.java.net/browse/JDK-8203442
csr: https://bugs.openjdk.java.net/browse/JDK-8203703
I hate to bring up naming but if I have a Stream<String> or Optional<String> then I'll use the "map" method to apply the mapping function.

An argument against re-using the name map() for this String method is that Stream.map() and Optional.map() act on the element(s) of the "container" the method is invoked upon, and return the same raw part of type with type parameter adjusted, while String.map() would be passing the target object itself to the function and returning an arbitrary type. So in this regard, it is a different operation. The same method as suggested for String would be usable on Stream too, but it would have to be called differently on Stream. Imagine defining this method on Object. It would clash with Stream.map() and Optional.map() if it was called map(). So I don't think .map() is the best name for this method.

Regards, Peter

Reply via email to