Нет ничего плохого в неявных преобразованиях. Даже если библиотека Java не использовалась для базовой логики, любая разумно разработанная чистая библиотека Scala по-прежнему будет использовать implicits, позволяющую писать такие выражения, как 5.days + 3.minutes
.
Не все импликации созданы равными либо, неявное преобразование в очень специфический тип, который у вас есть полный контроль, почти наверняка безопасен.
Как уже было сказано, такие преобразования будут оптимизированы в большинстве случаев, особенно при включенном анализе эвакуации, поэтому не позволяйте им беспокоить вас!
До тех пор, пока JSR 310 не будет завершена, joda-time - лучшее, что вы собираетесь получить.
За исключением необходимости следовать соглашениям о присвоении имен Java и отсутствию перегрузки оператора, joda-time уже очень хорошо подходит для идиоматической Scala. Дизайн очень функциональный по своей природе, особенно в том смысле, что он охватывает невосприимчивость, поэтому scalaj-время на самом деле всего лишь очень тонкая обертка вокруг библиотеки.
Вы также получаете выгоду от того, что время масштабирования можно легко обновить, чтобы использовать JSR 310, когда оно доступно, поэтому в то время было бы гораздо менее болезненно переносить ваш код.
С 2.8, Скалой времени было переименовано scalaj время: http://github.com/scalaj/scalaj-time
Вы ищете что-то, который обеспечивает <, > операторов? –
Я предлагаю вам избавиться от вашего иррационального страха неявных преобразований. ;-) – Jesper
@Timo - Мне бы хотелось, чтобы операции сравнения вместе с вещами вроде + и минус. @Jesper - Страх не совсем иррациональен. У Implicits есть удар производительности. Они могут вызывать странные взаимодействия с такими вещами, как равенство. Они полагаются на вывод типа, и я обнаружил, что смешивать множество вещей, которые полагаются на вывод типа, является хорошим рецептом абсолютной путаницы. –