【问题标题】:flutter / dart reflectable package : Not reflecting base/super class members颤振/飞镖反射包:不反映基/超类成员
【发布时间】:2020-04-09 13:52:23
【问题描述】:
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。

【问题讨论】:

    标签: flutter inheritance dart reflection reflector


    【解决方案1】:

    不确定您究竟需要对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));
    

    【讨论】:

    • 感谢 Zoran,您的 'classMirror.superclass...' 成功了。在 Java 中,不需要指定超类,那里的反射将基类和子类成员结合起来,所以我期待着。
    • 如果它对@Arif 有所帮助,我很高兴。提示:应该可以像这样访问所有“组合”成员声明:classMirror.instanceMembers.forEach((key, value) => print(value.simpleName));。请注意,这需要declarationsCapability
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2020-12-25
    • 2020-11-05
    相关资源
    最近更新 更多