2

我希望能够动态创建一个具有另一个类的所有方法的新类。特别是,我想制作自己的远程代理。class ApiProxy extends haxe.remoting.Proxy { } 新类 ApiProxy 将具有与 Api 相同的所有方法名称和签名,并将在编译时进行检查。只有每次调用都是通过网络完成的,而不是在本地处理。

我认为 remoting.Proxy 是一个神奇的内部类 - 这是真的吗?普通用户是否有能力定义一个像这样强大的静态类?我从未见过在 Java 中这样做过,我对它在 Haxe 中的功能印象深刻。

我将如何实现我自己的类,如 remoting.Proxy?

4

2 回答 2

1

你可以用宏来实现

看看这篇文章以获得这个想法:

http://haxe.1354130.n2.nabble.com/Macros-Are-Awesome-tc5945711.html

根据传递给函数的类型信息,您可以编写、保存到文件系统并在宏内注册一个新类。

于 2011-01-21T15:45:51.207 回答
1

haxe.remoting.Proxy 确实是“魔法”,在源评论中是这样描述的: http ://code.google.com/p/haxe/source/browse/trunk/std/haxe/remoting/Proxy.hx ?r=3592

您无法使用“正常”的 haxe 代码进行复制。为您自己的类添加/修改功能到 haxe.remoting.Proxy 将很困难,但也许并非不可能。查看“等效”api实现代码的教程:http: //haxe.org/doc/remoting/proxy

但是,使用宏可能会出现这样的情况:http: //haxe.org/manual/macros

使用宏现在具有挑战性。文档或示例的方式很少,宏功能仍在开发中。但是,它可以让您在编译过程中对编译器进行一些控制,这有时会非常有用。

祝你好运!

于 2011-01-09T02:38:50.217 回答