Czy istnieje elegancki sposób konwersji java.time.Duration
na scala.concurrent.duration.FiniteDuration
?Konwersja Java na okresy Scala
Próbuję wykonać następujące proste użycie Config w Scala:
val d = ConfigFactory.load().getDuration("application.someTimeout")
jednak nie widzę żadnego prostego sposobu korzystania wynik w Scala. nadzieję dobrzy ludzie Typesafe nie oczekują ode mnie, aby to zrobić:
FiniteDuration(d.getNano, TimeUnit.NANOSECONDS)
Edit: Uwaga linia ma błąd, który świadczy o punkt. Zobacz wybraną odpowiedź poniżej.
Co jest nie tak z przedstawionego rozwiązania? Jest to łatwe i zrozumiałe. Zawiń go w funkcję/utwórz niejawną konwersję, jeśli nie jest wystarczająco krótka dla ciebie. – sschaef
@sschaef the bothering bit jest biblioteką "przyjazną dla scali", która wypluwa typy Java, ale nie jest to nowa rzecz, gdy mówimy o Config. –
Typesafe Config obsługuje zarówno klientów Java, jak i Scala, zgodnie z definicją projektu. Zgadzam się, że użycie niejawnej konwersji jest nieco zaskakujące. Obejmuję to w Singleton MyConfig, więc kod aplikacji nigdy nie będzie musiał wiedzieć. Nie należy posypywać surowymi dostępami do konfiguracji Typesafe w kodzie poziomu aplikacji. – akauppi