Why explicit type argument should be replaced by diamond?

Dan Chaltiel picture Dan Chaltiel · Oct 15, 2015 · Viewed 19.3k times · Source

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 !

Answer

Sleiman Jneidi picture Sleiman Jneidi · Oct 15, 2015

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