我正在制作一个Minecraft mod,允许使用Lua创建mod。我希望用户能够用他们想要的界面创建磁贴实体。目前我使用的是一个Base TE,它调用一个已注册的Lua文件的函数,但这不允许它们制作清单和外设。
是。你可以通过ClassLoader.html#loadClass(…)加载接口,并使用Proxy#newProxyInstance(…)实现它
的例子:
ClassLoader cl = getClass().getClassLoader();
Class<?> desiredInterface = cl.loadClass("SomeInterface");
Object proxy = Proxy.newProxyInstance(
cl,
new Class<?>[]{desiredInterface},
new InvocationHandler() {
@Override
Object invoke(Object proxy, Method method, Object[] args) {
//call Lua with method name and args, return answer
}
});