当前位置:  开发笔记 > 编程语言 > 正文

隐式转换选项[T]到String

如何解决《隐式转换选项[T]到String》经验,为你挑选了1个好方法。

我试图使用隐式转换scala中的选项值到String但不知何故它的工作.这是我的语法 -

object ToStringParser{
  implicit def optionAnyToString[T](input: Option[T]):String = {
    input match {
      case Some(i) => i.toString
      case None => "NULL"
    }
  }
}

而我正在使用它 -

import domain.processors.ToStingParser._
println(submitDate)

但这总是印刷 -

Some(2016-08-02T17:55:03.000-04:00)

我们如何隐含选项



1> Dima..:

你的问题是println接受一个类型的参数Any,所以它无法知道你希望它使用你的隐式转换,你必须以某种方式告诉它你想要一个String,而不是一个Option.

这样可以:println(submitDate: String),所以这样:def puts(s: String) = println(s); puts(submitDate).

但是,与在这种情况下明确地执行此操作相比,它似乎并没有为您节省太多:

println(submitDate.getOrElse("NULL"))

这对读者来说会更加清晰.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有