cast<K2, V2> method

  1. @override
Map<K2, V2> cast<K2, V2>()
override

Provides a view of this map as having RK keys and RV instances, if necessary.

If this map is already a Map<RK, RV>, it is returned unchanged.

If this set contains only keys of type RK and values of type RV, all read operations will work correctly. If any operation exposes a non-RK key or non-RV value, the operation will throw instead.

Entries added to the map must be valid for both a Map<K, V> and a Map<RK, RV>.

Methods which accept Object? as argument, like containsKey, remove and operator [], will pass the argument directly to the this map's method without any checks. That means that you can do mapWithStringKeys.cast<int,int>().remove("a") successfully, even if it looks like it shouldn't have any effect.

Implementation

@override
Map<K2, V2> cast<K2, V2>() {
  // TODO(cbracken): Dart 2.0 requires this method to be implemented.
  throw UnimplementedError('cast');
}