Reputation: 198238
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
.
Upvotes: 10
Views: 5328
Reputation: 767
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
Upvotes: 1
Reputation: 355
You can write
date = [] as Date
to make sure date really has type Date. I had a similar problem and used
bin = [1, 26, 42 ,7] as byte[]
bin.encodeBase64()
Upvotes: 0
Reputation: 33436
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.
Upvotes: 11