使用Getters时返回不可修改的列表



我有一个带有私有字段的类,我正在使用getter访问这些私有字段:

List<Event> get events {
return _events;
}

问题是,当我获取事件并更改其值时,原始值(_events(也会更改。

userProfile.events.removeWhere((event)=> event.id == "1"); //this modifies _events as well 

如何更改此行为,以便在不影响原始_events值的情况下仅更改events

我可以这样做:

List<Event> get events {
return [..._events];
}

它基本上是_events的副本,但有没有办法像Java中那样将其作为不可修改的集合返回?

感谢

您可以使用List.unmodifiable()构造函数。

List<String> get name => List.unmodifiable(_name);

签出文档。

最新更新