castFrom<K, V, K2, V2> static method Null safety

Map<K2, V2> castFrom<K, V, K2, V2>(
  1. Map<K, V> source

Adapts source to be a Map<K2, V2>.

Any time the set would produce a key or value that is not a K2 or V2, the access will throw.

Any time K2 key or V2 value is attempted added into the adapted map, the store will throw unless the key is also an instance of K and the value is also an instance of V.

If all accessed entries of source are have K2 keys and V2 values and if all entries added to the returned map have K keys and V] values, then the returned map can be used as a Map<K2, V2>.

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.


static Map<K2, V2> castFrom<K, V, K2, V2>(Map<K, V> source) =>
    CastMap<K, V, K2, V2>(source);