[Geoserver-devel] Java 11 features, one we still haven't used in code: var

Hi all,
while usage of Java 11 specific API has started to trickle into the codebase already, for example, usage of List.of to build immutable lists.

However, there is a language feature that I still haven’t seen usage of, so far: “var”, aka
local variable type inference.

A good article about is here:
https://belief-driven-design.com/local-variable-type-inference-java-10-91bf1586632/

Personally, I’m so used to the type declaration that I don’t mind, but for simple cases, I would not mind seeing “var” either. What would bother me, on the other hand, would be to look at code assigning the result of a method to a local variable, and not knowing what the type is, without also having to go look at the signature of such method (somewhere else).

The other bit that I’m not particularly fond of is something like:

var myList = new ArrayList();

because myList is now an ArrayList, not a List… which would imply, that autocomplete
would suggest more methods that originally intended, reducing the ability to switch implementations later. The author says, as long as it’s confined to local variables, it’s not too bad. Indeed, but how many make the IDE generate a new method signature by a sample invocation? I do a lot, which would make the implementations trickle down there as well, if one does not pay attention.

Seems to me a “use with good judgement” feature (they all are, but this one seems tricky and involves personal views on when a target type is “obvious” vs not so).

Opinions?

Cheers
Andrea

···

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail

Hi Andrea,

Thank you for starting the discussion. About your first doubt, Intellij IDEA has a feature to give hints about the implicit types like this.
image.png

To enable this, you just need to enable Java type hints.
image.png

···

Regards,

Can Mehteroğlu

==
Professional Support for GeoNode, GeoServer and MapStore from the experts!

Visit http://bit.ly/gs-services for more information.

Can Mehteroğlu
Software Engineer

GeoSolutions Group
phone: +39 0584 962313
fax: +39 0584 1660272

https://www.geosolutionsgroup.com/
http://twitter.com/geosolutions_it

Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail.

Hi Can,
good to know. Mind one detail, the project does not mandate a particular IDE, everyone is free
to use whatever they prefer, IntelliJ, Eclipse, VS Code, Netbeans or even just VIM (not as
bare bones as one might think, with the right plugins).

Cheers
Andrea

(attachments)

image.png
image.png

···

Regards,

Andrea Aime

==
GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions Group
phone: +39 0584 962313

fax: +39 0584 1660272

mob: +39 339 8844549

https://www.geosolutionsgroup.com/

http://twitter.com/geosolutions_it


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.

This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail