Il modo "migliore" per fare questo in un modo efficace sarebbe:
List<MyClass> list = new ArrayList<MyClass>();
list.add(new MyClass("name", "address", 23));
list.add(new MyClass("name2", "address2", 45));
anche se richiede un sacco di digitazione ma come è possibile vedere chiaramente questo è più efficient
Un'altra alternativa sarebbe quella di utilizzare Google guava (non testato per l'efficienza):
ArrayList<MyClass> list = new ArrayList<MyClass>(
new MyClass("name", "address", 23),
new MyClass("name2", "address2", 45));
L'importazione richiesto è import static com.google.common.collect.Lists.newArrayList;
inoltre, è possibile utilizzare doppia parentesi di inizializzazione come originariamente proposto da @Rohit Jain: -
List<MyClass> list = new ArrayList<MyClass>() {
{
add(new MyClass("name", "address", 23));
add(new MyClass("name2", "address2", 45));
}
};
Come potete vedere, inner braces
è proprio come un initializer
blocco, che viene utilizzato per inizializzare il list
in una volta sola ..
nota il punto e virgola alla fine della vostra double-braces
anche notare l'ultimo metodo ha alcuni aspetti negativi come discusso here .
Le classi in Java devono essere denominate come 'MyClass'. –