我的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..
}
我已经搜索过这个问题,但我不明白为什么编译器不想从地图中给我myKey
。但我已经在Dart控制台中检查了(通过类构造函数中的print方法),我确信键myKey
在地图中。
答案 0 :(得分:3)
在Dart中,您无法使用点符号访问Map
值。评估b.a.myKey
是错误的,因为Map
没有myKey
获取者。但是,b.a['myKey']
不应该是错误。快速检查dartpad会显示它可以正常工作:https://dartpad.dartlang.org/10cdcbdc3730cfec175174e675320e54