2011-10-12 10 views

risposta

34

Non ho mai usato Velocity, ma il suo VTL reference guide dice che la chiamata a un metodo viene eseguita utilizzando $customer.getAddress() o ${purchase.getTotal()}. Quindi userei ${myArrayList.size()}.

+6

Il riferimento è uno dei pezzi più divertenti di codice di esempio che ho visto da un po '. Dovevo pulire il caffè dal mio schermo ... – Namphibian

12

È possibile accedere a una raccolta come qualsiasi altro oggetto, pertanto $collection.size() conterrà un valore.

Gli array sono special cased a comportarsi come List, quindi anche se $array.length non funziona, $array.size() opere.

Nelle versioni precedenti di Velocity (pre 1.6) si utilizza ListTool e ArrayTool.

0

preventivo da the developer guide:

Object [] array oggetto regolare, non molto deve essere detto qui. Velocity avvolgerà internamente l'array in una classe che fornisce un'interfaccia Iterator, ma ciò non dovrebbe riguardare il programmatore o l'autore del modello. Di maggiore interesse, è il fatto che Velocity ora consentirà agli autori di template di trattare gli array come elenchi di lunghezza fissa (a partire da Velocity 1.6). Ciò significa che possono chiamare metodi come size(), isEmpty() e get (int) su entrambe le matrici e le istanze standard java.util.List senza preoccuparsi della differenza.

Quindi utilizzando size() funziona altrettanto bene su java.util.List e matrici java.

Problemi correlati