我希望能够动态创建一个具有另一个类的所有方法的新类。特别是,我想制作我自己的远程代理。 类ApiProxy扩展haxe.remoting.Proxy {} 新类ApiProxy将具有与Api相同的所有方法名称和签名,并且将进行编译时检查。只有每次调用都是通过线路完成的,而不是在本地处理。
我认为remoting.Proxy是一个神奇的内部类 - 这是真的吗?普通用户是否能够定义一个像这样强大的静态类?我从未在Java中看到过这种情况,而且我对它在Haxe中的功能印象深刻。
我如何实现自己的类,如remoting.Proxy?
答案 0 :(得分: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
使用宏现在很有挑战性。文档或示例几乎没有,宏功能仍处于开发阶段。但是,它允许您在编译过程中对编译器进行一些控制,这有时会非常有用。
祝你好运!答案 1 :(得分:1)
你可以用宏来实现这个目标
看一下这篇文章就可以得到这个想法:
http://haxe.1354130.n2.nabble.com/Macros-Are-Awesome-tc5945711.html
您可以根据传递给函数的类型信息编写,保存到文件系统并在宏内部注册一个新类。