Der Einfachheit, Klarheit und Abstraktion halber möchte ich einen weiteren Namen für eine bestimmte Bindung einer parametrisierten Auflistungseigenschaft erfinden. Betrachten Sie zum Beispiel zunächst:
import collection.mutable.Map // NB: Map is a trait
val m1 = Map[String, Int]() // uses the Map companion object to create a HashMap
Jetzt möchte ich Folgendes ersetzen MyMap
für Map[String, Int]
. Idealerweise würde ich gerne etwas tun wie:
trait MyMap extends Map[String, Int]
object MyMap extends Map[String, Int] // not good enough by itself, need some apply defs
val m2 = MyMap() // nope
Ich könnte noch mehr Dinge in die MyMap
Begleitobjekt, oder ich könnte MyMap erweitern HashMap[String, Int]
und verlassen Sie sich nicht auf die magische Voreinstellung innerhalb des Map-Begleitobjekts.
Aber diese Alternativen scheinen mir zu viel Arbeit für etwas zu sein, das einfach sein sollte: Ich möchte nur MyMap
zu handeln wie Map[String, Int]
wo immer sie auftaucht. Wie lässt sich das am einfachsten bewerkstelligen, oder übersehe ich ein tieferes Prinzip?