为什么在从未使用类型参数时参数化方法?

时间:2018-04-19 13:53:50

标签: scala scalatest

在ScalaTest中有一个org.scalatest.selenium.WebBrowser特征,它提供了这种方法:

def executeScript[T](script: String, args: AnyRef*)(implicit driver: WebDriver): AnyRef =
    driver match {
      case executor: JavascriptExecutor => executor.executeScript(script, args.toArray : _*)
      case _ => throw new UnsupportedOperationException("Web driver " + driver.getClass.getName + " does not support javascript execution.")
    }

我很好奇为什么在实现中没有使用类型参数T时参数化了这个方法。文档没有就此提出任何意见。

你能说清楚吗?

1 个答案:

答案 0 :(得分:1)

根据Semmle

  

未使用的类型参数将无效并始终被推断为   Nothing

它还提供以下建议:

  

未使用的类型参数对您的程序没有影响,除了令人困惑   读者并弄清楚定义......删除类型   如果它是真正未使用的参数,或者如果它应该添加一个用途   使用。