Dynamic class method invocation in PHPの質問と同様、私はDartでこれを行いたいと思います。Dartの動的クラスメソッドの呼び出し
var = "name";
page.${var} = value;
page.save();
これは可能ですか?
Dynamic class method invocation in PHPの質問と同様、私はDartでこれを行いたいと思います。Dartの動的クラスメソッドの呼び出し
var = "name";
page.${var} = value;
page.save();
これは可能ですか?
あなたはMirrorsで達成することができますいくつかのものがあります。あなたが疑問に思う
import 'dart:mirrors';
class Page {
var name;
method() {
print('called!');
}
}
void main() {
var page = new Page();
var im = reflect(page);
// Set values.
im.setField("name", "some value").then((temp) => print(page.name));
// Call methods.
im.invoke("method", []);
}
場合、im
は、基本的にpage
インスタンスを反映InstanceMirror
、次のとおりです。
はここでクラスの値を設定するとどのように動的にメソッドを呼び出す方法の例です。 Is there a way to dynamically call a method or set an instance variable in a class in Dart?
Dart Mirror APIを使用してそのようなことを行うことができます。ミラーAPIは完全に今実装されますが、ここで、それは仕事ができる方法ですされていません。
import 'dart:mirrors';
class Page {
String name;
}
main() {
final page = new Page();
var value = "value";
InstanceMirror im = reflect(page);
im.setField("name", value).then((_){
print(page.name); // display "value"
});
}
'Futures.wait()'の呼び出しはあまり意味がありません。それを省略することができ、結果は同じです。 'Futures.wait()'は、与えられたアクションが完了したときに完了する 'Future'を返します。したがって、正しく機能するためには' .then() 'を書く必要があります。もちろん、操作は非同期であるため、運がうまくいきます:) –
ご意見ありがとうございます。私は将来の使用法については新しいので、私は 'await'提案と混同しています。www.dartbug.com/104 –
あなたが例えばSerializable
使用することができます:
import 'package:serializable/serializable.dart';
@serializable
class Page extends _$PageSerializable {
String name;
}
main() {
final page = new Page();
var attribute = "name";
var value = "value";
page["name"] = value;
page[attribute] = value;
print("page.name: ${page['name']}");
}
は必ず緑のチェックマークそれらの答えの一つに
また別の質問があります!どちらも正しい。 –