【发布时间】:2014-12-21 05:38:18
【问题描述】:
是否有可能在 Luaj 中让 Lua 类扩展 Java 类?我尝试在绑定类上使用getmetatable(),但显然它返回nil。
这里,Wizard 是绑定到 Lua 的 Java 类,SetupWizard 是我要从Wizard 继承的 Lua 类。
function SetupWizard:new()
local self = setmetatable({}, getmetatable(Wizard))
return self
end
将__index 分配给Wizard 的值也不起作用。
SetupWizard 定义:
SetupWizard = {
host = nil,
user = nil,
password = nil,
database = nil,
mySqlTables = {
users = nil,
},
}
SetupWizard.__index = Wizard
... SetupWizard methods here
【问题讨论】:
-
我对 LuaJ 了解不多,但很可能
Wizard本身就是一个用户数据,它有自己的__index方法,如果它被分配为__index表,则不会被检查另一个对象。您可能会尝试的只是将类的元表的__index分配给从Wizard获取的函数,例如function idx(self, k) return Wizard[k] end