scala - 禁用错误警告 "possible missing interpolator"

标签 scala compiler-warnings string-interpolation

我有一些嵌套的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/

相关文章:

java - 为什么编译器会在多行中输出单个警告?

java - 一些 Java 7 警告 - 如何删除它们

javascript - 如何在没有连接的情况下在 JavaScript 的字符串中插入变量?

scala - 理解函数字面量类型

arrays - 将字节数组转换为字符串

java - 在Gradle构建脚本中使用Scala(或Java)方法

c - 是否可以在编译时检测 C 中的范围错误

scala - 在 Scala 选项类型 isEmpty 方法中检查 None

scala - 字符串插值转义引号 PITA

javascript - 从索引范围内插字符串