我想完全按照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,我怎样才能实现?
答案 0 :(得分:0)
尝试创建这样的类:
case class Obj(@BeanProperty str: String)
以下是scala doc:http://www.scala-lang.org/api/current/#scala.beans.BeanProperty
您还可以查看Scalasti项目,它是StringTemplate的接口:http://software.clapper.org/scalasti/
答案 1 :(得分:-1)
它内置于语言中(以可扩展的方式)。只是
val obj = Obj("replacement")
s"xx ${obj.str} xx"
您可以在${...}
内添加任何Scala表达式。
有关详情,请参阅http://docs.scala-lang.org/overviews/core/string-interpolation.html(或只搜索“Scala字符串插值”)。