Scalastyle“;公共方法必须具有显式类型;游戏内框架
我们已经开始在我的工作中试验Scala和Play框架。首先设置我们的自动linting和测试框架,并部署Scalastyle来处理前者 这是非常有用的,除了我们得到这个特定的lint错误,我们发现很难以一种好的方式解决它。一个简单的例子是:Scalastyle“;公共方法必须具有显式类型;游戏内框架,scala,playframework,playframework-2.0,scalastyle,Scala,Playframework,Playframework 2.0,Scalastyle,我们已经开始在我的工作中试验Scala和Play框架。首先设置我们的自动linting和测试框架,并部署Scalastyle来处理前者 这是非常有用的,除了我们得到这个特定的lint错误,我们发现很难以一种好的方式解决它。一个简单的例子是: def helloWorld = Action { req => Ok("Hello World!") } 当然,虽然通常情况下它可能要复杂得多(以至于很难弄清楚实际的类型) 在任何一种情况下,这都会导致Scalastyl
def helloWorld = Action {
req =>
Ok("Hello World!")
}
当然,虽然通常情况下它可能要复杂得多(以至于很难弄清楚实际的类型)
在任何一种情况下,这都会导致Scalastyle中的“Public方法必须具有显式类型”错误
不幸的是,在这里设置预期的显式类型似乎通常会导致语法错误
有什么好的解决办法吗?还是我们只需要把这张支票交给播放项目
有什么好的解决办法吗?还是我们只需要把这张支票交给播放项目
我建议您为您的项目完全关闭org.scalastyle.scalariform.PublicMethodsHaveTypeChecker
规则,或者将您的控制器标记为此规则忽略(您将找到有关如何执行此操作的信息)
最后,这项检查对编写库的人更有好处(因为它有助于更明确地说明api one提供的内容)。我发现,当你在处理“真正”的项目时,像这样检查只会添加一些样板文件,阻止你利用类型推断。
我希望这有帮助。到设置->编辑器->Scala->类型注释。将公共值和方法的值更改为“添加”,而不是“添加并检查”。然后它将不再显示该警告 我找到了一种更好的方法来删除“Public方法必须具有显式类型”消息,而不必关闭它 定义这些方法时,可以设置body[type]和[implicit][type];例如,作为操作[JsValue]和隐式RequestHeader 代码示例:
def helloWorld:Action[JsValue] = Action {
implicit req: RequestHeader =>
Ok("Hello World!")
}
或
希望有更好的方法,但是//scalastyle:是的。
def helloWorld:Action[AnyContent] = Action {
implicit req: RequestHeader =>
Ok("Hello World!")
}