2011-08-20 5 views
10

corro groovysh, y escriba el siguiente código:MissingPropertyException en 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> 

Cómo acceder a la s aquí?

(Si cambio String s = "Hello" a s = "Hello", puedo acceder a él. Pero quiero saber cómo acceder a él en el ejemplo)


ACTUALIZACIÓN

Quiero usar String s = "Hello" a definir una variable porque quiero declarar el tipo de ella. Por ejemplo, si escribo:

Date date = [] 

La fecha será un java.util.Date. Pero si escribo:

date = [] 

Será un ArrayList.

Respuesta

11

La expresión s = "Hello" establece una variable de shell, la expresión String s = "Hello" establece una variable local que no se guarda en el entorno del shell. Consulte el Groovy Shell documentation para obtener más información. No estoy muy seguro de lo que está tratando de lograr, pero es posible que desee ir con Groovy Console para evaluar los scripts de Groovy.

+0

agradecimiento tú, ** la consola maravillosa ** puede dejarme hacerlo. ¿Quieres decir que no hay forma de obtener el 's' de' String s = ... 'en' groovysh', ¿verdad? – Freewind

+1

Puede envolverlo en una [función] (http://groovy.codehaus.org/Groovy+Shell#GroovyShell-Functions) y devolver 's' cada vez que lo necesite. Esa sería otra opción. –

0

Puede escribir

date = [] as Date 

para asegurarse de que realmente tiene fecha de tipo Fecha. Tenía un problema similar y se utiliza

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