我有一些嵌套的case类,对于特定的序列化机制,我需要提供一个包含productPrefix
字符的$
。像这样
object Foo {
case class Bar() {
override def productPrefix = "Foo$Bar"
}
}
现在,我收到来自此的编译器警告:
Warning:(53, 42) possible missing interpolator: detected interpolated identifier `$Bar` override def productPrefix: String = "Foo$Bar"
是否有办法禁用警告(如果可能)仅针对此实例? Scala版本是2.11.8。
编辑:我只是以为自己很聪明:
"Foo\u0024Bar"
。但是编译器甚至对此发出警告。考虑到没有其他外部对象的约束,另一个解决方案是classOf[Bar].getName
。
最佳答案
如果有一种方法可以从字符串的各个部分组成字符串,则可以执行以下操作。
override def productPrefix = "Foo$" + "Bar"
您还可以通过实际调用内插器,但转义
$
来使“缺少内插器”警告静音。override def productPrefix = f"Foo$$Bar"
关于scala - 禁用错误警告 "possible missing interpolator",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401213/