2011-08-20 3 views
10

corro groovysh, e digitare il seguente codice:MissingPropertyException in groovysh

groovy:000> String s = "Hello" 
===> Hello 
groovy:000> s 
ERROR groovy.lang.MissingPropertyException: 
No such property: s for class: groovysh_evaluate 
     at groovysh_evaluate.run (groovysh_evaluate:2) 
     ... 
groovy:000> 

Come accedere alla s qui?

(Se cambio String s = "Hello" a s = "Hello", posso accedervi. Ma voglio sapere come accedervi nell'esempio)


UPDATE

voglio usare String s = "Hello" per definire una variabile perché voglio dichiararne il tipo. Ad esempio, se scrivo:

Date date = [] 

La data sarà un java.util.Date. Ma se scrivo:

date = [] 

Sarà un ArrayList.

risposta

11

L'espressione s = "Hello" imposta una variabile di shell, l'espressione String s = "Hello" imposta una variabile locale che non viene salvata nell'ambiente della shell. Si prega di consultare il Groovy Shell documentation per ulteriori informazioni. Non sono abbastanza sicuro di cosa stai cercando di ottenere, ma potresti voler andare con lo Groovy Console per valutare gli script di Groovy.

+0

ringraziamento tu, ** La console groovy ** può permettermi di farlo. Vuoi dire, non c'è modo di ottenere 's' da' String s = ... 'in' groovysh', giusto? – Freewind

+1

Si può avvolgere in una [funzione] (http://groovy.codehaus.org/Groovy+Shell#GroovyShell-Functions) e restituire 's' ogni volta che ne avete bisogno. Questa sarebbe un'altra opzione. –

0

È possibile scrivere

date = [] as Date 

per rendere sicuro che data ha davvero tipo Data. Ho avuto un problema simile e usato

bin = [1, 26, 42 ,7] as byte[] 
bin.encodeBase64()