001package java7;
002
003import com.sandwich.koan.Koan;
004
005import java.util.ArrayList;
006import java.util.Arrays;
007import java.util.List;
008
009import static com.sandwich.koan.constant.KoanConstants.__;
010import static com.sandwich.util.Assert.assertEquals;
011
012public class AboutDiamondOperator {
013
014    @Koan
015    public void diamondOperator() {
016        String[] animals = {"Dog", "Cat", "Tiger", "Elephant", "Zebra"};
017        //Generic type of array list inferred - empty <> operator
018        List<String> animalsList = new ArrayList<>(Arrays.asList(animals));
019        assertEquals(animalsList, __);
020    }
021
022    @Koan
023    public void diamondOperatorInMethodCall() {
024        String[] animals = {"Dog", "Cat", "Tiger", "Elephant", "Zebra"};
025        //type of new ArrayList<>() inferred from method parameter
026        List<String> animalsList = fill(new ArrayList<>());
027        assertEquals(animalsList, __);
028    }
029
030    private List<String> fill(List<String> list) {
031        String[] animals = {"Dog", "Cat", "Tiger", "Elephant", "Zebra"};
032        list.addAll(Arrays.asList(animals));
033        return list;
034    }
035
036}