2015-04-22 33 views
2

我試圖在Float32List(以及其他類型的數據數組)中使用鏡像來獲取BYTES_PER_ELEMENT常量,但我所得到的只是一個例外No static getter 'BYTES_PER_ELEMENT' declared in class 'Float32List'.所以更一般地說,我訪問一個類的靜態常量?使用dart中的鏡像獲取靜態常量

import 'dart:typed_data'; 
import 'dart:mirrors'; 

main() { 
    var array = new Float32List(10); 

    var bytesPerElement = reflect(array).type.getField(#BYTES_PER_ELEMENT).reflectee; 

    print(bytesPerElement); 
} 

回答

2

new Float32List()是一家工廠的構造函數返回一個_Float32Array不具有BYTES_PER_ELEMENT

print(reflect(array).type); 

打印

ClassMirror on '_Float32Array' 
var bytesPerElement = 
    reflectClass(Float32List) 
    .getField(#BYTES_PER_ELEMENT) 
    .reflectee; 

打印

4 

我敢肯定這是不可能找到一種方法從_Float32ArrayFloat32List使用鏡子。