Voter pour l’implémentation de la future spécification de Java 9 : JEP 286

Je vous convie à aller voter pour l’implémentation d’une future fonctionnalité de Java 9 : « JEP 286: Local-Variable Type Inference ».

Cette spécification définie la possibilités d’utiliser ‘var’ ou ‘let’ ou un autre mot clé pour remplacer le type d’une variable quand ce dernier est explicite.
Par exemple le code suivant :

ArrayList<String> list = new ArrayList<String>();
Stream<String> stream = list.stream();

pourrait être écrit sous la forme :

var list = new ArrayList<String>();
var stream = list.stream();

C’est moins verbeux, et plus simple à lire 😉

Attention, les codes suivants donneraient des erreurs de compilation, car le type est indéterminable (en commentaire j’ai mis le message du compilateur Java) :

var x; // (cannot use 'val' on variable without initializer)
var f = () -> { }; //(lambda expression needs an explicit target-type) 
var g = null; //(variable initializer is 'null')
var c = l(); //(inferred type is non denotable)
var m = this::l;  //(method reference needs an explicit target-type)
var k = { 1 , 2 }; //(array initializer needs an explicit target-type) 

La spécification est sur : http://openjdk.java.net/jeps/286

le vote se passe sur : https://www.surveymonkey.com/r/KGPTHCG

Bon vote …