MissingPropertyException в groovysh - PullRequest
       7

MissingPropertyException в groovysh

10 голосов
/ 20 августа 2011

Я запускаю 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>

Как получить доступ к s здесь?

(Если я изменю String s = "Hello" на s = "Hello", я могу получить к нему доступ, но я хочу знать, как получить к нему доступ в примере)


UPDATE

Я хочу использовать String s = "Hello" для определения переменной, потому что я хочу объявить ее тип. Например, если я напишу:

Date date = []

Дата будет java.util.Date. Но если я напишу:

date = []

Это будет ArrayList.

Ответы [ 3 ]

11 голосов
/ 21 августа 2011

Выражение s = "Hello" устанавливает переменную оболочки, выражение String s = "Hello" задает локальную переменную, которая не сохраняется в среде оболочки. Пожалуйста, обратитесь к документации Groovy Shell для получения дополнительной информации. Я не совсем уверен, чего вы пытаетесь достичь, но вы можете предпочесть Groovy Console для оценки сценариев Groovy.

1 голос
/ 21 декабря 2015

просто установите его в interpreterMode

groovy:000> :set interpreterMode

и вы можете просто использовать

Date date = []

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

0 голосов
/ 12 июня 2013

Вы можете написать

date = [] as Date

, чтобы убедиться, что дата действительно имеет тип Дата. У меня была похожая проблема и я использовал

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