【发布时间】:2022-03-11 23:53:58
【问题描述】:
Given 是一个 Java 方法,它为给定的字符串返回 java.lang.Objects。我想将此方法包装在 Scala 方法中,该方法将返回的实例转换为某种类型 T。如果转换失败,该方法应该返回None。我正在寻找类似的东西:
def convert[T](key: String): Option[T] = {
val obj = someJavaMethod(key)
// return Some(obj) if obj is of type T, otherwise None
}
convert[Int]("keyToSomeInt") // yields Some(1)
convert[String]("keyToSomeInt") // yields None
(如何)这可以使用 Scala 的反射 API 来实现吗?我很清楚convert 的签名可能需要更改。
【问题讨论】:
标签: scala reflection shapeless