我想做java的字符串模板所做的事情,但是在scala中。但是,此库不适用于案例类:
case class Obj(str:String)
val st = new ST("xx $obj.str$ xx",'$','$')
st.add("obj",Obj("replacement"))
st.render() //returns "xx xx"
ST 试图通过反射找到属性“str”,但它不适用于 scala。
没有ST如何实现?
尝试像这样创建您的课程:
case class Obj(@BeanProperty str: String)
这是 scala 文档:http ://www.scala-lang.org/api/current/#scala.beans.BeanProperty
您还可以查看作为 StringTemplate 接口的项目 Scalasti:http ://software.clapper.org/scalasti/
它内置在语言中(以可扩展的方式)。只是
val obj = Obj("replacement")
s"xx ${obj.str} xx"
里面可以有任何 Scala 表达式${...}
。
有关更多信息,请参阅http://docs.scala-lang.org/overviews/core/string-interpolation.html(或仅搜索“Scala 字符串插值”)。