How do I access metadata annotations from a class?

后端 未结 1 1456
遇见更好的自我
遇见更好的自我 2020-12-20 12:25

I have a Dart class that is annotated with metadata:

class Awesome {
  final String msg;
  const Awesome(this.msg);
         


        
相关标签:
1条回答
  • 2020-12-20 12:50

    Use the dart:mirrors library to access metadata annotations.

    import 'dart:mirrors';
    
    class Awesome {
      final String msg;
      const Awesome(this.msg);
    
      String toString() => msg;
    }
    
    @Awesome('it works!')
    class Cool {
    
    }
    
    void main() {
      ClassMirror classMirror = reflectClass(Cool);
      List<InstanceMirror> metadata = classMirror.metadata;
      var obj = metadata.first.reflectee;
      print(obj); // it works!
    }
    

    To learn more, read about the ClassMirror#metadata method.

    0 讨论(0)
提交回复
热议问题