groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remi Forax <fo...@univ-mlv.fr>
Subject Re: About type inference of method return value
Date Sat, 08 Sep 2018 12:54:38 GMT
----- Mail original -----
> De: "Jochen Theodorou" <blackdrag@gmx.org>
> À: "dev" <dev@groovy.apache.org>
> Envoyé: Samedi 8 Septembre 2018 14:22:25
> Objet: Re: About type inference of method return value

[...]
> 
> "var" is a bit a different story. It will lead to surprising types being
> used and partially violates the paradigm that you should not use the
> most special class for your variables if not needed. But even then the
> effect is quite local. If you keep your methods small, as you should
> anyway, then there is not much of a disadvantage here to be seen in my
> opinion. But it already makes the program less readable for another
> user. It is the same in dynamic Groovy with def... Which shows you
> simply have to learn to read the method differently. But the effect is
> very localized.

yes, using an interface instead of a concrete type is only useful if the type is visible from
the outside, so parameter types/return type of public methods or public fields should use
interfaces. A local variable (or a private field) is never visible from another class so one
should use a concrete type here, there is not point to ask the VM to de-virtualize when it's
not necessary (even if de-virtualisation is cheap).   

> 
> Now return type inference is not, as I have shown already. And that,
> plus the lazy developer part, is why I am not friend of this.
> 
> bye Jochen

Rémi

Mime
View raw message