2011-12-28 16 views
28

Mam kawałek kodu:Co oznacza <> dla genericów java?

class MyClass<RCM> 
    private List<RCM> allPreExistingConfigsForCodes() { 
    if(this.allCodesForThisType.size() == 0) 
     return new ArrayList<RCM>(0); 

IntelliJ mówi mi, że powinienem wymienić new ArrayList<RCM> z new ArrayList<> co by to oznaczało?

+0

związane http://stackoverflow.com/questions/4166966/what-is-the-point-of-the -diamond-operator-in-java-7 – vikramvi

Odpowiedz

34

Od Java Tutorials generics lesson:

w Java SE 7 i później można wymienić argumenty typu, wymaganego do wywołać konstruktora rodzajowe klasy z pustym zestawem typu argumentów (<>), o ile kompilator może określić lub określić argumenty typu z kontekstu. Ta para nawiasów trójkątnych, <>, jest nieformalnie nazywana diamentem. Na przykład, można utworzyć instancję z Box<Integer> z następującym stwierdzeniem:

Box<Integer> integerBox = new Box<>();