Concise method bodies with delegation and this
forax at univ-mlv.fr
forax at univ-mlv.fr
Mon Mar 18 22:28:43 UTC 2019
> De: "Brian Goetz" <brian.goetz at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>
> Cc: "amber-spec-experts" <amber-spec-experts at openjdk.java.net>
> Envoyé: Lundi 18 Mars 2019 16:19:19
> Objet: Re: Concise method bodies with delegation and this
>> There are two syntaxes, the arrow syntax and the colon-colon syntax, i think
>> there is consensus that the arrow syntax (the one Brian uses) is nice and
>> convenient.
> I don’t really even think there’s consensus there; it is nice and convenient and
> mostly unobjectionable, but some felt “meh, what’s the point”, as it merely
> eliminates a few characters of typing.
Especially if you still have a big javadoc comment as Kevin said.
I think this feature shine when you override a method, because the semantics is already defined (usually you don't need any javadoc), the poster child being implementing Comparable as Victor said.
And BTW, i still think we should come with a shorter syntax for overridden method by allowing to not declare parameter types like with a lambda,
class Person implement Comparable<Person> {
private final int id;
// more fields
override equals(o) -> (o instanceof Person p)? p.id == id : false;
override hashCode() -> id;
override compareTo(p) -> Integer.compare(id, p.id);
}
> The implementation-by-delegation sub feature is far more substantial; it allows
> you to implement a class by wiring its declarations to existing reusable
> behaviors. This has far more potential benefit, but also more cost.
yes, but i believe part of the cost is because the current proposed syntax is reusing the syntaxic operators = and :: but with a slightly different semantics.
>> - using '=' to set a concise method make the syntax easy to confound with a
>> field initialization (something which is ok in Scala because the Scala syntax
>> also blur that distinction between a method call and a field access, it's less
>> ok in Java IMO).
> Please, can we not harp on notation unnecessarily?
i disagree here because i think that the proposed syntax is part of the issue
>> I really dislike the notation
> Please, can we not harp on notation unnecessarily?
fair point for this one.
Rémi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20190318/0e98ae04/attachment-0001.html>
More information about the amber-spec-experts
mailing list