Я пытаюсь использовать Apache Commons Bean Util на родовом карте так:BeanUtils - SetProperty на общий массив карт
Это карта:
public class MyObject {
public Map<String, ?> attributes = new HashMap<String, Object>();
}
Вот JSON представление Ф.О., что в карте:
"attributes": {
"attr1": "value1",
"attr2": "value2",
"attrN": "valueN",
"nestedObject" :{
"nestedAttr" : "value1",
"nestedAttr2" : "value2"
},
"simpleArray":["value1", "value1"]
}
Вот как я пытаюсь использовать SetProperty изменить одно из значений:
org.apache.commons.beanutils.BeanUtils.setProperty(myObject, "attributes.simpleArray[0]", "newValue");
Вложенные свойства работают нормально. Однако, когда один из вложенных свойств является массив, который я получаю следующее исключение:
java.lang.IllegalArgumentException: индексированные или отображенные свойства не поддерживаются на объектах типа карты: simpleArray [0]
Это работает, если Я пытаюсь установить простое свойство вроде:
org.apache.commons.beanutils.BeanUtils.setProperty(myObject, "attributes.attr1", "newValue");
Но не с массивом. В чем проблема?