In the past, we made sure to support the new versions of Java as soon as they were available by correctly parsing the new language features. We want to go one step further and come up with enhanced support of modern Java features, by making sure existing rules support correctly the new features and adding a set of new rules anticipating misusage and educating users about the best practices.
We will then keep providing new value as users upgrade their Java versions and be sure they are bringing us with them in their upgrade journey.
In this MMF, we will target new features added in Java versions 9 to 15. A first set of rules and improvements has already been implemented in the different MMFs adding the support of these new versions, we want to extend this list to add:
|Java 9||Support List.of(), Set.of(), Map.of(), Map.ofEntries() in existing rules|
|Extend S4738 to suggest "List.of", "Map.of" and Set.of instead of Guava|
|Java 10||One new rule for Local-Variable Type Inference (var)|
|Java 11||"String.isBlank()" support in S5838|
|Fix FP in S1943 related to new API of FileWriter and FileReader|
|Java 14||Two new rules for Switch expression|
|Extend existing rules to support Switch Expression|
|FP in S1199 related to Switch arrow label|
|Java 15||One Rule for Text Blocks|
|Support Text Blocks in existing rules|
|Support "string.formatted()" in existing rules|
|All||One rule for Restricted Identifiers|
|One rule for 'instanceof' instead of 'A.class.isInstance'|
All the necessary prerequisite has been implemented while adding the support of new versions, we can start to improve existing rules and add new ones right away.