1
class User{
  String firstName;
  String lastName;
  String email;
}

動的に選択されたシンボルまたは文字列を使用して、ユーザーのフィールドの 1 つを取得および設定できるようにしたいと考えています。例えばString value = u[new Symbol("firstName")];

InstanceMirror に getField メソッドがあるようですが、値が返されないようです。必要なのは値だけです。

4

1 に答える 1

2

# を使用してシンボルを作成する場合、コンパイル時に名前を知る必要があります。私はそれをこのように動かしました:

library operator_lib;

import 'dart:mirrors';

void main(List<String> args) {
  var x = new X();
  var f = new Symbol('firstName');
  var r = reflect(x);
  print(r.getField(f).reflectee);
  r.setField(f, "John");
  print(r.getField(f).reflectee);

}

class X {
  String firstName = 'Mike';
}
于 2013-12-03T13:13:21.347 に答える