【发布时间】:2019-12-21 23:39:18
【问题描述】:
根据this,可以禁止未使用参数的任何警告。
但是,我认为抑制所有情况实际上可以隐藏错误,所以我想要一种更精细的方法来抑制这些。
有一个明确的用例,这个警告在大多数情况下是没有意义的,我将通过一个例子来解释它。
例如以下假设的代理代码:
trait HeadersGenerator {
def generateHeaders(request: Request): Seq[(String, String)]
}
class HeaderMutator extends HeadersGenerator {
override def generateHeaders(request: Request): Seq[(String, String)] = {
val oldValue = request.getHeader("SomeHeader")
Seq("SomeHeader" -> s"$oldValue - new")
}
}
class ConstantHeaderGenerator extends HeadersGenerator {
// here the 'request' parameter is not in use, and needed to be suppressed -
// it is not interesting that we do not use it here, since we
// don't have anything to do with that because it is inherited
override def generateHeaders(request: Request): Seq[(String, String)] = {
Seq("GeneratedHeader" -> "something")
}
// here the 'unused' parameter is interesting, and I would like to see a warning
private def shouldWarn(unused: String) {
// the parameter is not un use here
}
}
// somewhere in code
val headers = Seq(
new HeadersMutator,
new ConstantHeaderGenerator
).flatMap(_.generateHeaders(request))
【问题讨论】:
-
你可以使用silencer