颤振/飞镖可反射包装:不反射基础/超一流成员

时间:2020-04-09 13:52:23

标签: flutter inheritance dart reflection reflector

import 'package:reflection_test2/common/reflect/Reflector.dart';

@reflector
class Base
{
  String s1;
}

@reflector
class Sub extends Base
{
  String s2;
}

ClassMirror classMirror = reflector.reflectType(Sub);

=>在这里,classMirror仅反映s2,而不反映基类/超类成员s1。

1 个答案:

答案 0 :(得分:0)

不确定s1字段到底需要做什么,但是下面列出了一种访问它的方法。 希望对您有所帮助。

class Reflector extends Reflectable {
  // config reflect capabilities
  const Reflector() : super(invokingCapability, declarationsCapability, typeRelationsCapability);
}
ClassMirror classMirror = reflector.reflectType(Sub);
// print all instance members of the superclass (e.g. toString, s1, etc.)
classMirror.superclass.instanceMembers.forEach((key, value) => print(value.simpleName));