是否可以在不编写自定义代码的情况下将其解析String为FiniteDurationScala?
有一个方法Duration,被称为create,接受一个String,但是产生一个Duration并且不确定如何进一步使用它来创建FiniteDuration它.有一些工厂方法Duration生成FiniteDuration实例,但那些暗示我必须解析我的字符串以生成他们的参数(他们的签名期望长和a TimeUnit).
我提到的这些类型来自scala.concurrent.duration.
谢谢.
ale*_*bit 21
您可以使用您提到的方法来创建Duration对象(或只是使用该apply方法).然后,您可以检查它是否是一个FiniteDuration由collect荷兰国际集团它(因为FiniteDuration是分型Duration),虽然也有根据您的使用情况下,几个变种:
scala> val finite = Duration("3 seconds")
scala> val infinite = Duration("Inf")
scala> val fd = Some(finite).collect { case d: FiniteDuration => d }
fd: Option[scala.concurrent.duration.FiniteDuration] = Some(3 seconds)
scala> val id = Some(infinite).collect { case d: FiniteDuration => d }
id: Option[scala.concurrent.duration.FiniteDuration] = None
Run Code Online (Sandbox Code Playgroud)
希望它有所帮助.