锡兰的RMI/Proxy及其与非默认方法的关系
我想在锡兰写一个RMI库(因为到目前为止我还没有找到) 我需要的第一件事是代理。在Java中,我使用了锡兰的RMI/Proxy及其与非默认方法的关系,proxy,rmi,ceylon,Proxy,Rmi,Ceylon,我想在锡兰写一个RMI库(因为到目前为止我还没有找到) 我需要的第一件事是代理。在Java中,我使用了 Proxy.newProxyInstance(classLoader, interfaces, handler); 1.锡兰有类似的东西吗?(没有找到什么东西) 我自己试图写这样的东西时,通过字节码操作遇到了这个问题。 漂亮,正是我想要的 注意,这甚至可以为类生成一个代理,而不仅仅是像Java中那样的接口。在锡兰,这应该是合法的,因为没有字段,我们可以用方法调用来模拟整个类 2.如果为
Proxy.newProxyInstance(classLoader, interfaces, handler);
1.锡兰有类似的东西吗?(没有找到什么东西)
我自己试图写这样的东西时,通过字节码操作遇到了这个问题。 漂亮,正是我想要的 注意,这甚至可以为类生成一个代理,而不仅仅是像Java中那样的接口。在锡兰,这应该是合法的,因为没有字段,我们可以用方法调用来模拟整个类 2.如果为类创建代理是不可行的,请告诉我。 此外,关于代理的锡兰直觉/未来是什么?是否有(无)代理人
在代理的未来,我们有一个主要问题: 在锡兰,我们有
default
关键字,没有它,就无法细化/覆盖方法。这也会导致编译的Java输出类的final
方法。因此(甚至不是)字节码操作可以覆盖它们并将它们重定向到调用处理程序/拦截器
3.我们如何处理
我想不会吧?我完全不允许对方法和
default
/final
关键字进行细化,但这会妨碍类的RMI/代理
4.类的代理是个坏主意吗
是的,我目前正在思考和研究更多的问题:JS实现、接口和默认方法等等
这些要点似乎是目前最相关的,所以让我们从这里开始。您可以尝试使用我编写的模块:
或者,如果您只针对JVM,您可以直接使用Java的
代理。在进一步的研究中,我发现:
1.代理目前是锡兰1.4里程碑的一部分(代理相关问题)
3。为锡兰编译器启用EE模式,将删除final
关键字
从这一点上看,我发现解决方案的工作原理与预期的一样,与Gavin提供的完全相同