как «встроенный» тип приведен в Groovy - PullRequest
0 голосов
/ 11 сентября 2018

Может быть, нет способа сделать это, но я подумал, что задам вопрос.

Позвольте мне объяснить мой вопрос на примере.Представьте себе это как отличный сценарий:

def myMap = [:]
def myMap2 = ["Hello":'World']
myMap.put("example", myMap2)
//now if I try to write this:
myMap.get("example").get("Hello")
//the get("Hello") comes up as an unrecognized method because groovy doesn't know what type of object it is dealing with until run time
//To avoid this I can do this:
def x = (Map) myMap.get("example")
x.get("Hello")

Мне было интересно, есть ли способ для меня типизировать возврат из myMap.get('example') без создания новой переменной / новой строки

See how the second get is unrecognized

1 Ответ

0 голосов
/ 12 сентября 2018

Если я правильно понимаю ваш вопрос, проблема связана с синтаксисом синтаксического анализатора и характером динамического поведения языка Groovy.Я не думаю, что это связано с IntelliJ, поскольку GGTS демонстрирует то же поведение.

Итак, как вы сказали, вы можете получить доступ к Map, используя альтернативный синтаксис:

println myMap["example"]["Hello"]

Другой возможный способ - использовать прямой доступ к свойствам объекта:

println myMap.example.Hello

Надеюсь, эта помощь.

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