Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why explicit type argument should be replaced by diamond? [duplicate]

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 !

like image 740
Dan Chaltiel Avatar asked Oct 14 '15 23:10

Dan Chaltiel


People also ask

What is Diamond notation used for?

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.

What is the purpose of diamond operator in Java?

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.


1 Answers

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

like image 79
Sleiman Jneidi Avatar answered Oct 11 '22 07:10

Sleiman Jneidi