s.....e
s.....e
#programowanie #java #lua
W klasie mam zmienną Vector3 up; oraz metodę o takiej samej nazwie: up(float x, float y, float z), w zasadzie to setter wygenerowany przez lombok z opcją Accessors(fluent = true) - dla Javy to nie jest problem. W projekcie zacząłem używać LuaJ i tu się pojawił - mianowicie, już w skrypcie Lua, gdy wołam instancję, odwołując się do tej metody:

cam:up(0.0, 0.0, 1.0)
Lua wywala błąd: org.luaj.vm2.LuaError: attempt to call userdata. Z tego co się zorientowałem Lua widzi zmienną i próbuje ją wywołać jak metodę. Pytanie do kogoś, kto wykorzystywał LuaJ lub może inną implementację, np. w C++ - czy jest jakiś sposób/feature aby wskazać, że chodzi mi tu o metodę a nie o zmienną?
  • Najlepsze
  • Wszystkie komentarze
vytah
vytah
1
@sheeple: LuaJ zawsze bierze najpierw pole, nie ma obejścia, to jest jedyny fragment kodu, który się tym zajmuje: https://github.com/luaj/luaj/blob/daf3da94e3cdba0ac6a289148d7e38bd53d3fe64/src/jse/org/luaj/vm2/lib/jse/JavaInstance.java#L49
LeD7
LeD7
0
Może użyj notacji z kropką tj. cam.up(0.0, 0.0, 1.0)