3

コンパイル時に認識される特定のパターンを持つ特定のメソッドを持ち、指定された ID トラフ ミックスインと共に親クラスに登録したいと考えています。

例: 事前に定義された id:5 を持つクラスからメソッド 'X' を取得します。私が望むのは、親クラスの mixin で、メソッド X がその id を持つデリゲートとして登録され、後で呼び出されることです。そのID。

ID を int 型にし、指定されたメソッドのみを登録することを考慮して、ID を指定する最良の方法は何でしょうか?

@property によく似たカスタム注釈を使用して (可能であれば)、次のような引数を使用して実行する必要があります。

@autoregister(id)
void method(...)

この方法で実行できる場合は、ドキュメントで見つけられなかったので、例またはその方法に関するドキュメントへのリンクがいいでしょう。

それが不可能な場合は、代わりに関数のシグネチャを文字列として使用しますが、可能な限り非常に長い文字列ではなく、数値識別子を使用して実行したいと考えています。

4

1 に答える 1

1

現在、カスタムアノテーションを作成することはできません(ただし、将来的には可能になります)。

ただし、独自のメソッド命名規則を作成して、説明した内容と同様のことを実行できるようにすることができます。これを達成する方法を深く考える時間はありませんが、次のような方法から始めます。

public void id30_doSomething(/* params */) {
  // body
} 
alias id30_doSomething doSomething;

// finally, lets do something with all these methods
// and generate mixin...

この後、おそらくすべてのメソッドをリストし、それらの名前が一致するかどうかを見つけることができます。一致id([0-9]*)_.*する場合は、ミックスインを生成してそれらを親に登録します...

于 2012-06-27T16:07:50.580 に答える