Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MissingPropertyException in groovysh

I run groovysh, and type the following code:

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>

How to access the s here?

(If I change String s = "Hello" to s = "Hello", I can access it. But I want to know how to access it in the example)


UPDATE

I want to use String s = "Hello" to define a variable because I want to declare the type of it. For example, if I write:

Date date = []

The date will be a java.util.Date. But if I write:

date = []

It will be a ArrayList.

like image 798
Freewind Avatar asked Aug 20 '11 07:08

Freewind


2 Answers

The expression s = "Hello" sets a shell variable, the expression String s = "Hello" sets a local variable which does not get saved to the shell's environment. Please see the Groovy Shell documentation for more information. I am not quite sure what you are trying to achieve but you might rather want to go with Groovy Console to evaluate Groovy scripts.

like image 190
Benjamin Muschko Avatar answered Nov 01 '22 18:11

Benjamin Muschko


simply set it to interpreterMode

groovy:000> :set interpreterMode

and you can just straightly use

Date date = []

ref: http://www.groovy-lang.org/groovysh.html#GroovyShell-InterpreterMode

like image 1
Aizzat Suhardi Avatar answered Nov 01 '22 17:11

Aizzat Suhardi