Я использую groovy, и я столкнулся с проблемой сегодня, когда вызов getAt («ключ») возвратил null, но вызов get («key») желаемый объект.getAt (<key>) возвращает null, но get (<key>) возвращает нужный объект
вызов метода является частью гораздо более крупного скрипта, где я использую getAt() где-то еще. есть только один конкретный пример, в котором я должен использовать get («ключ») вместо getAt («ключ»)
Извините, но здесь я не могу вставить код.
Я просто искал explination как, почему получить и getAt будет производить различные результаты при обращении ключа (не показатель)
Насколько я далеко они должны работать одинаково в отношении к хэш-карта в заводной
theMap = ["A": [:],
"B": [:],
"C": [:],
"D": [:],
"E": [:],
"F": [:],
"G": [:],
"H": [:],
"I": [:],
"J": [:]]
позже в коде у меня есть это ....
if (theMap.getAt("J").keySet().contains(iterationVariable)) {
theMap.getAt("J").getAt(iterationVariable).add("someStuff")
} else {
theMap.getAt("J").put(iterationVariable, ["someStuff"])
}
Таким образом, исключения нулевого указателя происходит в
theMap.getAt("J").getAt(iterationVariable).add("somestuff")
после второй итерации, при которой точка J уже выглядит следующим образом «J»: [ «someKey»: [ «некоторые другие вещи»]]
, если я изменю getAt, чтобы он прекрасно работает.
ваш ключ строка? – eckes
Можете ли вы привести пример, который показывает, что вы имеете в виду? Трудно отлаживать анекдоты –
Да Дайте мне посмотреть, смогу ли я что-нибудь написать. Будет несколько минут, хотя – switch201