Dưới đây là một ví dụ cơ bản:
(Lưu ý: Bạn sẽ muốn có một (rất) lên đến phiên bản cập nhật của SDK cho điều này, điều này đã được thực hiện trong Dart Editor phiên bản 0.2.1_r14167, Dart SDK phiên bản 0.2.1.2_r14167 Ngày 2 tháng 11 năm 2012)
Chân thành nhất của tôi Cảm ơn Gilad của Nhóm Google Dart đã cung cấp ví dụ này!
#import('dart:mirrors');
class MyClass {
String _test;
String get test => _test;
set test(String paramVal) => _test = paramVal;
void my_method() {
}
void print_test(){
print("test string is: ${_test}");
}
MyClass(String test) {
_test = test;
}
}
main() {
MyClass myClass = new MyClass("Make my day, PUNK.");
myClass.print_test();
//ClassMirror myClassMirror = reflect(myClass).type;
InstanceMirror myClassInstanceMirror = reflect(myClass);
ClassMirror MyClassMirror = myClassInstanceMirror.type;
Map<String, MethodMirror> map = MyClassMirror.methods;
print("map = ${map}");
map.values.forEach((MethodMirror mm){
myClassInstanceMirror.invoke(mm.simpleName,[]);
});
}
Nguồn
2012-11-03 01:59:44
ClassMirror không còn chứa thuộc tính 'phương thức' nữa. Nó bây giờ có 'instanceMembers' và 'declarationations'. 'InstanceMembers' có đồng nghĩa với thuộc tính 'phương thức' cũ không? – ringstaff