我的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