【发布时间】:2020-06-30 03:53:54
【问题描述】:
我正在使用库 https://github.com/fthomas/refined 并希望将 java.util.UUID 转换为精炼的 Uuid。
如何将java.util.UUID转换为精炼的Uuid?
更新
我有以下 http 路由:
private val httpRoutes: HttpRoutes[F] = HttpRoutes.of[F] {
case GET -> Root / UUIDVar(id) =>
program.read(id)
读取函数定义如下:
def read(id: Uuid): F[User] =
query
.read(id)
.flatMap {
case Some(user) =>
Applicative[F].pure(user)
case None =>
ApplicativeError[F, UserError].raiseError[User](UserNotRegistered)
}
编译器抱怨:
type mismatch;
[error] found : java.util.UUID
[error] required: eu.timepit.refined.string.Uuid
[error] program.read(id)
[error]
^
【问题讨论】:
-
Refined 的
Uuid用于检查 String 是否包含有效的UUID,因此如果将该字符串转换为真正的 UUID,您会很安全,为什么要这样做需要相反的吗? -
我已经更新了我的帖子。
-
@LuisMiguelMejíaSuárez 可能 zero_coding 更愿意保证字符串是有效的 uuid,不在数据类型
java.util.UUID内,而是在精炼类型String Refined Uuid内。
标签: scala scala-cats http4s refined