3

我正在使用库https://github.com/ftomas/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]         

       ^
4

1 回答 1

4

这里是转换java.util.UUIDeu.timepit.refined.api.Refined[String, eu.timepit.refined.string.Uuid]

import java.util.UUID    
import eu.timepit.refined.string.Uuid
import eu.timepit.refined.api.Refined

val uuid: UUID = UUID.fromString("deea44c7-a180-4898-9527-58db0ed34683")

val uuid1: String Refined Uuid = Refined.unsafeApply[String, Uuid](uuid.toString)
于 2020-06-29T19:42:51.387 回答