我正在编写一个函数来从JSONObject
. 由于它是 JSON,输入名称的条目可能存在也可能不存在,因此该函数返回一个Option
失败或值成功None
时的值。函数编译失败,返回类型不正确。Try
NULL
def tryGet[T](jsonObject: JSONObject, name: String): Option[T] = {
Try(jsonObject.get(name))
.map(x => if(JSONObject.NULL.equals(x)) None else x.asInstanceOf[T])
.toOption
}
错误:
Expression of type Option[Any] doesn't conform to expected type Option[T]
有人可以告诉我我在这里做错了什么吗?另外,这是解决问题的惯用方式吗?
更新:
更改为以下作品
def tryGet[T](jsonObject: JSONObject, name: String): Option[T] = {
Try(jsonObject.get(name))
.filter(!JSONObject.NULL.equals(_))
.map(_.asInstanceOf[T])
.toOption
}