2

別のクラスのすべてのメソッドを持つ新しいクラスを動的に作成できるようにしたいと考えています。特に、独自の種類のリモート プロキシを作成したいと考えています。class ApiProxy extends haxe.remoting.Proxy { } 新しいクラス ApiProxy は、Api と同じメソッド名とシグネチャをすべて持ち、コンパイル時にチェックされます。ローカルで処理されるのではなく、すべての呼び出しのみがネットワーク経由で行われます。

remoting.Proxy は魔法の内部クラスだと思いますが、これは本当ですか? 通常のユーザーは、これほど強力に静的なクラスを定義できますか? これが Java で行われているのを見たことがなく、Haxe での機能に感銘を受けました。

remoting.Proxy のような独自のクラスを実装するにはどうすればよいですか?

4

2 に答える 2

1

haxe.remoting.Proxyは確かに「魔法」です。ソース コメントでそのように説明されています。 ?r=3592

「通常の」haxe コードでは複製できません。独自のクラスの haxe.remoting.Proxy に機能を追加/変更することは困難ですが、不可能ではないかもしれません。「同等の」API 実装コードのチュートリアルを確認してください: http://haxe.org/doc/remoting/proxy

ただし、このようなことはおそらくマクロで可能です: http://haxe.org/manual/macros

マクロでの作業は、現在は困難です。ドキュメントや例はほとんどなく、マクロ機能はまだ開発中です。ただし、コンパイルプロセス中にコンパイラをある程度制御できるため、驚くほど便利な場合があります。

幸運を!

于 2011-01-09T02:38:50.217 に答える
1

マクロでこれを実現できます

アイデアを得るためにこの投稿を見てください:

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

関数に渡された型情報に基づいて、ファイルシステムに書き込み、保存し、マクロ内に新しいクラスを登録できます。

于 2011-01-21T15:45:51.207 に答える