import 'dart:mirrors'; class Test { int a = 5; static int s = 5; final int _b = 6; int get b => _b; int get c => 0; } void main() { Test t = new Test(); InstanceMirror instance_mirror = reflect(t); var class_mirror = instance_mirror.type; for (var v in class_mirror.declarations.values) { var name = MirrorSystem.getName(v.simpleName); if (v is VariableMirror) { print("Variable: $name => S: ${v.isStatic}, P: ${v.isPrivate}, F: ${v.isFinal}, C: ${v.isConst}"); } else if (v is MethodMirror) { print("Method: $name => S: ${v.isStatic}, P: ${v.isPrivate}, A: ${v.isAbstract}"); } } }
Dart 反射 获取一个类所有属性和方法
16 min read