有没有在Java中动态实现接口的方法?



我正在制作一个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
                      }
                 });

相关内容

  • 没有找到相关文章

最新更新