Vous pouvez facilement vérifier le résultat de l'inférence de type local par var
introduit dans Java 10 avec JShell. [^ 1]
[^ 1]: / vars
est une commande JShell.
Dans JShell, le résultat de l'inférence de la section Generics Type Parameters est également affiché, il peut donc y avoir des cas où il est plus utile que le compilateur Java (javac
). (* Il existe des différences individuelles)
$ jshell
| Welcome to JShell -- Version 10
| For an introduction type: /help intro
jshell> var as = new ArrayList<String>();
as ==> []
jshell> var ao = new ArrayList<>();
ao ==> []
jshell> var ar = new ArrayList();
ar ==> []
jshell> /vars
| ArrayList<String> as = []
| ArrayList<Object> ao = []
| ArrayList ar = []
jshell> var li = List.of(1, 2);
li ==> [1, 2]
jshell> var lx = List.of(1, 2.0);
lx ==> [1, 2.0]
jshell> var ly = List.of(1, "2");
ly ==> [1, 2]
jshell> /vars
| List<Integer> li = [1, 2]
| List<Number&Comparable<? extends Number&Comparable<?>>> lx = [1, 2.0]
| List<Serializable&Comparable<? extends Serializable&Comparable<?>>> ly = [1, 2]
Pour les types complexes déduits par les variables lx
, ly
, voir Inférence de type et type infini. chose.
Recommended Posts