部署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;
}
}
答案 0 :(得分:0)
您可以将符号作为常量编写为const符号('sayHi')或更短的#sayHi。这将缩小以匹配缩小的方法名称。具有常量参数的新Symbol()可能也会缩小。显然,带有动态参数的新符号不会。