3

Java の String Template とまったく同じことをしたいのですが、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なしでどうすれば達成できますか?

4

2 に答える 2

0

次のようにクラスを作成してみてください。

    case class Obj(@BeanProperty str: String)

これがスカラ ドキュメントです: http://www.scala-lang.org/api/current/#scala.beans.BeanProperty

また、StringTemplate のインターフェースであるプロジェクト Scalasti を参照することもできます: http://software.clapper.org/scalasti/

于 2016-10-09T18:39:46.503 に答える
-1

これは言語に組み込まれています (拡張可能な方法で)。ただ

val obj = Obj("replacement")
s"xx ${obj.str} xx"

内に任意の Scala 式を含めることができます${...}

詳細については、 http://docs.scala-lang.org/overviews/core/string-interpolation.htmlを参照してください(または単に「Scala 文字列補間」を検索してください)。

于 2016-10-09T17:30:59.800 に答える