September 2019
Intermediate to advanced
816 pages
18h 47m
English
As a rule of thumb, LVTI combined with the diamond operator may result in unexpected inferred types if the information that's needed for inferring the expected type is not present in the right-hand side.
Before JDK 7, that is, Project Coin, List<String> would be declared as follows:
List<String> players = new ArrayList<String>();
Basically, the preceding example explicitly specifies the generic class's instantiation parameter type. Starting with JDK 7, Project Coin introduced the diamond operator, which is capable of inferring the generic class instantiation parameter type, as follows:
List<String> players = new ArrayList<>();
Now, if we think about this example in terms of LVTI, we will get the ...