I'm using Android Studio and I write this :
List<Button> buttons = new ArrayList<Button>();
I have this message :
Explicit type argument Button should be replaced by <>
I'm curious, why would it be better to use diamond instead ?
List<Button> buttons = new ArrayList<>();
EDIT :
I don't agree with the duplicate at all ! I saw that answer before and it compares explicit argument to no argument at all, whereas I compare explicit argument to implicit argument !
The main purpose of the diamond operator is to simplify the use of generics when creating an object. It avoids unchecked warnings in a program and makes the program more readable.
The diamond operator – introduced in Java 1.7 – adds type inference and reduces the verbosity in the assignments – when using generics: List<String> cars = new ArrayList<>(); The Java 1.7 compiler's type inference feature determines the most suitable constructor declaration that matches the invocation.
It is less verbose, consider the following
Map<String,List<String>> map = new HashMap<String,List<String>>();
vs
Map<String,List<String>> map = new HashMap<>();
I think you would go for the second option
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With