четверг, 4 марта 2010 г.

Лунный кофе. часть 2ая.

Не прошло и недели как наткнулся на проблему и долго искал решение. Часть нашел на форумах? правда довольно старых так что пришлось синтезировать то что там писали с офф докой.

Собсно гря суть проблемы.
Из java модуля прокидывается в Lua инстанс класса имеющий функцию принимающую в качестве параметров массив чего либо. Проблема заключается в том что модель построения коллекций Lua такова что массивы там - такиеже ассоциативные массивы(очень похоже на gawk).

получившееся решение не блещет красотой но работает

uArray = luajava.bindClass("java.lang.reflect.Array")
uObject = luajava.newInstance("java.lang.Object"):getClass()
ux = uArray:newInstance(uObject, #lst)

for k,v in pairs(lst) do
uArray:set(ux, k - 1, v)
end

где lst и есть Lua массив.
После этого ux передается в метод java класса и все работает.

1 комментарий: