锡兰的RMI/Proxy及其与非默认方法的关系

锡兰的RMI/Proxy及其与非默认方法的关系,proxy,rmi,ceylon,Proxy,Rmi,Ceylon,我想在锡兰写一个RMI库(因为到目前为止我还没有找到) 我需要的第一件事是代理。在Java中,我使用了 Proxy.newProxyInstance(classLoader, interfaces, handler); 1.锡兰有类似的东西吗?(没有找到什么东西) 我自己试图写这样的东西时,通过字节码操作遇到了这个问题。 漂亮,正是我想要的 注意,这甚至可以为类生成一个代理,而不仅仅是像Java中那样的接口。在锡兰,这应该是合法的,因为没有字段,我们可以用方法调用来模拟整个类 2.如果为

我想在锡兰写一个RMI库(因为到目前为止我还没有找到)

我需要的第一件事是代理。在Java中,我使用了

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提供的完全相同