問題タブ [dart-mirrors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dart - リフレクション (ミラー) を使用して Dart クラスのメソッド名にアクセスするにはどうすればよいですか?
Dart クラスのメソッドを「フェッチ」する必要があります。
これどうやってするの?
そして、メソッドを呼び出せるようにしたいです。
例を見てもいいですか?
dart - Dartでの動的クラスメソッドの呼び出し
PHPでの動的クラスメソッド呼び出しの質問のように、これをDartで実行したいと思います。
それは可能ですか?
dart - Dartで関数の存在をテストするにはどうすればよいですか?
Dart の関数またはメソッドの存在を、呼び出して NoSuchMethodError エラーをキャッチすることなくテストする方法はありますか? 私は次のようなものを探しています
指定された関数が存在するかどうかをテストしfunc_name
ます。前もって感謝します!
dart - 文字列からクラスをインスタンス化する
ダーツでは、文字列からクラスをインスタンス化することは可能ですか?
例えば:
- javascript のバニラ:
- 目的 C:
generics - Dart でミラーを使用してジェネリック型変数の具象型を取得するにはどうすればよいですか?
List
このようなofがあると仮定String
します。
ミラーを使用して sでmyList
あることをどのように把握できますか?List
String
typeVariables
ofを使用してみましたが、ミラーは一般的なクラスClassMirror
を記述しているようです。List
ドキュメントでもこれを見つけましたが、アクセスしても がスローされないClassMirror
インスタンスをまだ見つけていません。originalDeclaration
NoSuchMethodError
final ClassMirror originalDeclaration
この型の元の宣言のミラー。
ほとんどのクラスでは、それらは独自の独自の宣言です。ただし、ジェネリック クラスの場合、バインドされていない型変数を持つ元のクラス宣言と、バインドされた型変数を持つジェネリック クラスのインスタンス化には違いがあります。
dart - Retrieving getter values with dart:mirrors reflection
I have the following code (simplified), that uses reflection to iterate a class's fields and getters and output the values. The ContainsGetter
class contains a getter, and the ContainsField
class contains a simple field.
Using dart:mirrors
library, I can get the value of the field by using instanceMirror.getField(fieldName)
), but not the getter by using instanceMirror.invoke(fieldName,[])
.
The following Dart script (using the build 17463) gives the output below:
app script
output
(An acceptable could be that "this bit just hasn't been written yet!")
dart - Dartでクラスを動的にロードする
それで、私はミラーを調べました、そしてそれらはオプションかもしれません、しかしそれらの非同期性を考えると、それらは本当に使いにくいか、あるいは単に長期的には実行可能ではないかもしれません。それらは現在サポートされていないので(単なる遊び道具)、とにかく現時点では実際には実行可能ではありません。
質問:一連の文字列が与えられた場合、たとえば。[ "Foo", "Bar" ]
基本クラスApplication
とWidget
in、library corelib;
および各文字列の対応するクラスFooWidget
、BarWidget
inは、文字列を対応するクラスのインスタンスに変換するlibrary applibrary;
ための現在最も洗練されたメソッドであり、dart2jsで機能します。Application
明確にするための同等のPHP疑似例、
出力
dart - dartにpythonのdir()に相当するものはありますか?
タイトルが言うように、dir()
ダーツにPythonに相当するものはありますか?
dart - Dart Mirror API: リフレクション呼び出しの結果を取得する
未来を返すミラーを持つことは、それらでできることを劇的に制限します。
例えば、
私が通常行う方法は、MagicalDynamicWrapper で noSuchMethod を定義することです。
- メソッドマップにそのような名前のメソッドがあるかどうかを確認し、それを呼び出します。
- 存在しない場合は、リフレクションを介して「実際の」オブジェクトを呼び出します。
残念ながら、実際のオブジェクトを呼び出すと、常に未来が返されます。だからうまくいかない。
ある時点で (値ゲッターを使用して) Future の値を取得することができましたが、そのゲッターは使用できなくなりました。
私の質問:
リフレクション呼び出しの結果を同期的に取得する方法はありますか?
分散設定では、先物は間違いなく進むべき道です。しかし、すべてのメタ情報が利用可能な非分散設定では、リフレクション呼び出しの値を取得できるはずです。テスト フレームワークとビルド ツールの作成者にとって、私は大きな違いをもたらすでしょう。