У меня очень странная проблема с получением значений из LinkedHashMap в Grovvy при запуске в конвейере Jenkins.
У меня есть такая карта: map = ['key1': 'param1']
Теперь я хочу получитьзначение key1, поэтому я называю map.get('key1')
или map['key1']
.Удивительно, но оба они возвращают null
.
Когда я пытаюсь позвонить map.keySet()
, он возвращает key1
.И что самое интересное, когда я звоню map.get(map.keySet()[0])
, он возвращает param1
, как и ожидалось.
Так как же получается, что прямой map.get('key1')
не работает?
ОБНОВЛЕНИЕ:
После некоторого расследования я обнаружил, что key1
это не строка, а org.codehaus.groovy.runtime.GStringImpl
.Кто-нибудь знает, почему он был приведен к этому классу, а не к String?
Вот как создается исходная карта:
result = ["${key}": value]