2012-08-24 6 views
7

私はこのような何かを持っています。この点から、具体的な静的関数をどのようにして呼び出すことができるのでしょうか。私が使用しようとしたミラーAPIを介して静的メソッドの具体的なオブジェクトを取得する方法は?反射によって</p> <pre class="lang-dart prettyprint-override"><code>class MyClass { static void DoSomething(arg1, arg2){...} } </code></pre> <p>、私はこのクラスのClassMirrorを取得することができています:

注:それの一つは、引数だとして

ObjectMirror.invoke('DoSomething', [arg1, arg2]); 

最初に動作しているように見えますが、それは引数として複合型の受け渡しをサポートしていない、この静的関数は複合型が必要です。

理想的には、静的メソッドを表す「Function」オブジェクトを取得して、直接呼び出すことができます。

答えて

16

a。現状は一時的なものです。計画では、ミラーAPIが引数をミラーにラップします。

b。 APIは最終的に関数オブジェクトのFutureを与えるgetPropertyメソッドをサポートします。しかし、Functionオブジェクトを直接取得することはないので、この場合は実際には何の違いもありません。

c。基本的な考え方は、APIが基本的にミラー上で動作することです。それをより使いやすくするために、非ミラーを入力として受け入れ、ミラーでラップしてください。それは常にミラーを返し、場合によってはこれらの先物を返します。これは、APIがリモートとローカルのケースで同じように動作するためです。

d。ミラーを理解するためのリソース:

  1. http://www.bracha.org/mirrors.pdf(学術論文、タフに行く)
  2. http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4(ビデオ、事前にダートは、以前のミラーシステムを論じ)
  3. http://gbracha.blogspot.com/2010/03/through-looking-glass-darkly.html(旧、前ダーツ、ブログ記事ミラー上の私の)
  4. http://www.wirfs-brock.com/allen/posts/228(アレンヴィルフス-Brockさんのブログ。アレンは
  5. http://www.wirfs-brock.com/allen/posts/245
012)90年代に戻ってSmalltalkのミラーのパイオニアでした

トピックの投稿には、search my blogまたはAllen Wirf-Brock'sを指定することもできます。

+0

完全に作業しました。ありがとうございました! –

関連する問題

 関連する問題