我的Dart代码给了我这个错误:

NoSuchMethodError: Class '_InternalLinkedHashMap' has no getter 'myKey'

这是我的代码:
Class A{
        Map a = {
             "myKey": "Dont privatise this value"};
}
Main(){
     A b = new A();
     print(b.a.myKey);  // Error
     print(b.a['myKey']); // Error too..
}

我已经搜索了这个问题,但是我不明白为什么编译器不想从 map 上给我myKey。但是我已经在Dart控制台中进行了检查(通过类构造函数中的打印方法),并且我确定myKey键在 map 中。

最佳答案

在Dart中,您无法使用点符号访问Map值。评估b.a.myKey是错误的,因为Map没有myKey setter/getter 。但是,b.a['myKey']不应是错误。快速检查dartpad显示它可以工作:https://dartpad.dartlang.org/10cdcbdc3730cfec175174e675320e54

10-08 14:55