Mit impliziten Konvertierungen ist nichts falsch. Selbst wenn für die zugrundeliegende Logik keine Java-Bibliothek verwendet wurde, würde jede vernünftig entworfene reine Scala-Bibliothek immer noch implicits verwenden, so dass Sie Ausdrücke wie 5.days + 3.minutes
schreiben können.
Nicht alle implicits werden auch gleich erstellt, eine implizite Konvertierung in einen ganz bestimmten Typ, über den Sie die volle Kontrolle haben, ist fast sicher sicher.
Wie andere schon gesagt haben, werden solche Konvertierungen in den meisten Fällen weg optimiert, besonders wenn die Escape-Analyse eingeschaltet ist, also lassen Sie sich nicht von ihnen beunruhigen!
Bis JSR 310 fertiggestellt ist, ist joda-time das Beste, was Sie bekommen werden.
Abgesehen von der Notwendigkeit, den Java-Namenskonventionen zu folgen und eine Überlastung des Operators zu vermeiden, passt joda-time bereits sehr gut zu idiomatic Scala. Das Design ist sehr funktional in der Natur, vor allem die Art und Weise, wie es Unwandelbarkeit umfasst, so dass Scalaj-Zeit eigentlich nur eine sehr dünne Hülle um die Bibliothek ist.
Sie erhalten auch den Vorteil, dass scalaj-time einfach auf die Verwendung von JSR 310 aktualisiert werden kann, wenn es verfügbar ist, so dass es viel weniger schmerzhaft ist, Ihren Code zu diesem Zeitpunkt zu migrieren.
Seit 2.8, scala-Zeit scalaj Zeit umbenannt wurde: http://github.com/scalaj/scalaj-time
Suchen Sie etwas, das <, > Betreiber bietet? –
Ich schlage vor, dass Sie Ihre irrationale Angst vor impliziten Konvertierungen loswerden. ;-) – Jesper
@Timo - Ich möchte die Vergleichsoperationen zusammen mit Dingen wie + und minus. @Jesper - Die Angst ist nicht völlig irrational. Implizite haben einen Leistungseinbruch. Sie können seltsame Interaktionen mit Dingen wie Gleichheit hervorrufen. Sie beruhen auf Typinferenz, und ich habe festgestellt, dass das Mischen vieler Dinge, die auf Typinferenz beruhen, ein gutes Rezept für absolute Verwirrung ist. –