2013-11-22 57 views
0

當您部署飛鏢應用程序以使代碼縮小時,以下代碼是否仍然有效?當我讀到字符串被維護但所有符號都被縮小了,那麼如果方法名被縮小但字符串保留爲'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

您可以將符號寫爲一個常量,作爲const Symbol('sayHi')或更短的#sayHi。這將被縮小以匹配縮小的方法名稱。新的Symbol()和一個常量參數可能也會被縮小。很顯然,具有動態參數的新符號不會。