2010-11-06 10 views
7

Chiunque può spiegare perché chiamare [:]. Classe su un valore restituito da una mappa durante il richiamo di [:]. GetClass() restituisce la mappa dei risultati attesi. Vedere l'esempio di seguitoRisoluzione di Groovy Map classe

1-

["test",[test:"test"],23].each {  
    println it.class 
} 
class java.lang.String 
null 
class java.lang.Integer 

2-

["test",[test:"test"],23].each {  
    println it.getClass() 
} 
class java.lang.String 
class java.util.LinkedHashMap 
class java.lang.Integer 

Ken

risposta

11

Ecco la risposta

http://jira.codehaus.org/browse/GROOVY-1824

EDIT - sicuro. Credo che la semantica di una mappa sono tali che se si dispone di

def m = [one:1, two:2] 

si suppone di essere in grado di accedere alle voci nella mappa come

m.one 

in altre parole, l'accesso alla mappa è come ottenere una proprietà sull'oggetto della mappa. Se

m.class 

restituito la classe, si spezzerebbe quelle semantica, perché 'classe' non è una chiave aggiunto alla mappa dal programmatore.

Questo è quello che raccolgo ....

+1

Grande, la sua risposta è piuttosto senza senso, però, puoi mettere in chiaro inglese? – ken

+0

@ken ha modificato la mia risposta con la mia interpretazione – hvgotcodes

+1

spiegazione molto chiara, questa dovrebbe essere la risposta al problema JIRA. – ken

Problemi correlati