Java 7 Type Inference

Java 7 introduced a new feature Type Interface which provides ability to compiler to infer the type of generic instance. We can replace the type arguments with an empty set of type parameters (<>) diamond.
Before Java 7 following approach was used:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
List<integer> list = new List<integer>();
</integer></integer>
List<integer> list = new List<integer>(); </integer></integer>
List list = new List();  

We can use following approach with Java 7:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
List<integer> list = new List<>();
</integer>
List<integer> list = new List<>(); </integer>
List list = new List<>(); 

We just used diamond here and type argument is there.

Example

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
package com.w3schools;
import java.util.ArrayList;
import java.util.List;
public class TestExample {
public static void main(String args[]){
//Prior to Java 7
List<integer> list1 = new ArrayList<integer>();
list1.add(10);
for (Integer element : list1) {
System.out.println(element);
}
//In Java 7, Only diamond is used
List<integer> list2 = new ArrayList<>();
list2.add(10);
for (Integer element : list2) {
System.out.println(element);
}
}
}
</integer></integer></integer>
package com.w3schools; import java.util.ArrayList; import java.util.List; public class TestExample { public static void main(String args[]){ //Prior to Java 7 List<integer> list1 = new ArrayList<integer>(); list1.add(10); for (Integer element : list1) { System.out.println(element); } //In Java 7, Only diamond is used List<integer> list2 = new ArrayList<>(); list2.add(10); for (Integer element : list2) { System.out.println(element); } } } </integer></integer></integer>
package com.w3schools;

import java.util.ArrayList;
import java.util.List;

public class TestExample {
	public static void main(String args[]){
		 //Prior to Java 7    
        List list1 = new ArrayList();  
        list1.add(10);  
        for (Integer element : list1) {  
            System.out.println(element);  
        }  
        //In Java 7, Only diamond is used 
        List list2 = new ArrayList<>();   
        list2.add(10);  
        for (Integer element : list2) {  
            System.out.println(element);  
        }  
	}  
}

Output

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
10
10
10 10
10
10