飞镖,字符串的反射符号

时间:2013-11-22 23:00:11

标签: reflection dart

部署dart应用程序以缩小代码时,以下代码是否仍然有效?当我读到字符串被维护但所有符号都被缩小时,如果方法名称缩小但字符串保留为'sayHi',那么如何正确创建invoke方法调用中的符号?

import 'dart:mirrors';


void main() {

  var inst = new MyClass(33);

  var instMirror = reflect(inst);

  var res = instMirror.invoke(new Symbol('sayHi'), []).reflectee;

}


class MyClass{

  int x;

  MyClass(this.x);

  int sayHi(){
    print('this class has x = $x');
    return x;
  }

}

1 个答案:

答案 0 :(得分:0)

您可以将符号作为常量编写为const符号('sayHi')或更短的#sayHi。这将缩小以匹配缩小的方法名称。具有常量参数的新Symbol()可能也会缩小。显然,带有动态参数的新符号不会。