2011-12-28 24 views
28

Ho un po 'di codice:Che cosa significa <> per i generici java?

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

IntelliJ mi sta dicendo che dovrei sostituire new ArrayList<RCM> con new ArrayList<> cosa vorrebbe dire?

+0

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

risposta

34

Dal Java Tutorials generics lesson:

In Java SE 7 e versioni successive, è possibile sostituire gli argomenti di tipo richieste per invocare il costruttore di una classe generica con un insieme vuoto di tipo argomenti (<>) a condizione che il compilatore possa determinare o dedurre gli argomenti di tipo dal contesto. Questa coppia di parentesi angolari, <>, è chiamata in modo informale il diamante. Ad esempio, è possibile creare un'istanza della Box<Integer> con la seguente dichiarazione:

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