1

我想在 Scala 中使用注释:

  //@SuppressWarnings("unused")
  def method123 = someObject.someMethod456

如果我取消注释它,它将导致错误

 type mismatch;
[error]  found   : String("unused")
[error]  required: Array[String]
[error]   @SuppressWarnings("unused")

那是怎么回事?

4

1 回答 1

3

试试这个

 @SuppressWarnings(Array("unused"))

此外,带有数组初始SuppressWarnings值设定项的注释在java中是完全合法的:

 @SuppressWarnings({"unused"})

那是因为SuppressWarnings#value是一个数组

编辑

有一些特定于 java 的语法糖。

jls 9.7.1

如果元素类型是数组类型,并且对应的 ElementValue 不是 ElementValueArrayInitializer,则将唯一元素为 ElementValue 表示的值的数组值与元素相关联...

换句话说,当单元素数组与数组值注释类型元素相关联时,可以省略花括号。

但是在scala{ ElementValuesopt ,opt }中是非法的,这就是为什么应该在上面的例子中使用的原因。Array("unused")

于 2013-07-05T21:43:26.077 回答