Доступ к java картам и спискам как к JavaScript объектам в Rhino

Есть ли способ получить доступ к Java картам и спискам как к объектам JavaScript в Rhino?

У меня есть карта, которая содержит только другие карты и списки примитивов и строк, я хотел бы передать ее скрипту Rhino, сделать с ней что-то, и вернуть измененный объект обратно в Java - но поскольку они являются объектами java.util.Map и java.util.List, я не могу использовать стандартный синтаксис ассоциативных массивов JavaScript. То есть: fooMap.get("keyName") будет работать, а fooMap.keyName и fooMap["keyName"] - нет.

Я не знаю, есть ли специфический для Rhino способ сделать это, или есть какая-то утилита преобразования/кастирования, которая поможет. Commons BeanUtils недостаточно, потому что для преобразования Map в bean (к которому можно получить доступ через синтаксис ассоциативного массива), вы должны сначала создать класс, который имеет все именованные мутаторы/акцессоры. Во время выполнения я не буду знать структуру объекта.

6
задан Gary 18 May 2011 в 14:36
поделиться