groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remi Forax <>
Subject Re: About type inference of method return value
Date Sat, 08 Sep 2018 12:54:38 GMT
----- Mail original -----
> De: "Jochen Theodorou" <>
> À: "dev" <>
> 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


View raw message