根据文档,您可以引用<object.property>
格式中对象的属性。我希望这能让我检查字符串的长度,但它似乎不起作用。我认为这是因为该方法是String.length()
,并且根据文档,如果我执行类似的操作<mystr.length>
,它将查找一个名为的方法getLength()
和一个名为的字段length
,但它从不查找一个名为的方法length()
。我在 Scala REPL 中通过这个快速检查进行了验证:
scala> import org.stringtemplate.v4._; import scala.collection.JavaConverters._;
import org.stringtemplate.v4._
import scala.collection.JavaConverters._
scala> new ST("<xs:{ x | <x>:<x.length> }>").add("xs", List("hello", "goodbye").asJava).render
res0: String = "hello: goodbye: "
scala> case class S(val s:String) { def getLength = s.length }
defined class S
scala> new ST("<xs:{ x | <x>:<x.length> }>").add("xs", List("hello", "goodbye").map(S).asJava).render
res1: String = "S(hello):5 S(goodbye):7 "
因此,如果 Strings 有一个getLength()
方法或一个length
字段,它就会起作用......
有没有更简单的方法来获取字符串长度?也许是内置的 StringTemplate 函数,或者我不知道的其他方法?