Play框架中的Scalastyle"公共方法必须具有显式类型"

Mic*_* A. 5 scala playframework playframework-2.0 scalastyle

我们已经开始在我的工作中尝试使用Scala和Play框架.设置我们的自动linting和测试框架作为第一件事,并已部署Scalastyle来处理前者.

这是非常有用的,除了我们得到这个特定的lint错误,我们发现很难以一个好的方式解决.一个简单的例子是这样的:

  def helloWorld = Action {
    req =>
      Ok("Hello World!")
  }
Run Code Online (Sandbox Code Playgroud)

虽然它常常会复杂得多(当然,很难弄清楚实际上是什么类型).

在任何一种情况下,这都为Scalastyle提供了"公共方法必须具有显式类型"错误.

不幸的是,在这里设置预期的显式类型似乎通常会导致语法错误.

对此有什么好的解决方案的建议?或者我们是否只需要对Play项目进行此检查?

Eug*_*Loy 5

对此有什么好的解决方案的建议?或者我们是否只需要对Play项目进行此检查?

我建议要么org.scalastyle.scalariform.PublicMethodsHaveTypeChecker完全关闭你的项目规则,要么将你的控制器标记为被这个规则忽略(在这里你会找到关于如何做到这一点的信息).

最后,这种检查对编写库的人更有益(因为它有助于更​​明确地提供api).我发现,当你在"真正的"项目上工作时,检查这样做只会增加一些样板并阻止你利用类型推断.