0__*_*0__ 6 scala compiler-warnings string-interpolation
我有一些嵌套的case类,对于特定的序列化机制,我需要提供一个productPrefix包含$字符的内容.像这样
object Foo {
case class Bar() {
override def productPrefix = "Foo$Bar"
}
}
Run Code Online (Sandbox Code Playgroud)
现在我收到一个编译器警告:
Run Code Online (Sandbox Code Playgroud)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,在没有其他外部对象的约束下.
jwv*_*wvh 14
如果有办法从它的部分组成字符串,你可以做这样的事情.
override def productPrefix = "Foo$" + "Bar"
Run Code Online (Sandbox Code Playgroud)
您也可以通过实际调用插值器来安静"缺少插补器"警告,但是可以避开插值器$.
override def productPrefix = f"Foo$$Bar"
Run Code Online (Sandbox Code Playgroud)
警告是由...引起的-Xlint.可以通过给出scalac命令行选项来禁用关于所谓的缺失插补器的特定linter
-Xlint:_,-missing-interpolator
Run Code Online (Sandbox Code Playgroud)
下划线(_)用于"一切",-missing-interpolator用于"除了缺少插补器警告".