Java 玩2.1要我写scala代码吗
我希望这是我在游戏中遇到的最后一个错误!2.1 所有我的控制器返回并使用Java 玩2.1要我写scala代码吗,java,scala,playframework,playframework-2.1,Java,Scala,Playframework,Playframework 2.1,我希望这是我在游戏中遇到的最后一个错误!2.1 所有我的控制器返回并使用compile命令抛出错误 return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user))); [error] required: User,scala.collection.immutable.List<User>,User [error] found: User,java.ut
compile
命令抛出错误
return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user)));
[error] required: User,scala.collection.immutable.List<User>,User
[error] found: User,java.util.List<User>,<null>
编辑:
使用run
命令,我有以下异常:
sbt.PlayExceptions$CompilationException: Compilation error[error: method render in class createOrUpdate cannot be applied to given types;]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15$$anonfun$apply$16.apply(PlayReloader.scala:349) ~[na:na]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:349) ~[na:na]
at sbt.PlayReloader$$anon$2$$anonfun$reload$2$$anonfun$apply$15.apply(PlayReloader.scala:346) ~[na:na]
at scala.Option.map(Option.scala:133) ~[scala-library.jar:na]
解决方案:
删除您的项目。创建一个新的。游戏中不再需要mainLang=JAVA!2.1:依赖项
java*
已经足够玩了!以识别您的主要应用程序语言
文件的其余部分似乎是正确的。试着运行
play clean all compile
,使其工作。scala应该处理从java列表到scala列表的类型转换。
因此,我认为您可能看到的是列表类型,而不是null类型,其中需要user。
下面语句中的最后一个字段是否返回null
return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user)));
[error] required: User,scala.collection.immutable.List<User>,User
[error] found: User,java.util.List<User>,<null>
返回ok(createOrUpdate.render(Secured.getConnectedUser()、getCustomers()、User.build(User));
[错误]必需:用户,scala.collection.immutable.List,用户
找到[错误]:用户,java.util.List,
解决方案是:
所以。。。这叫做迁移吗?玩2.1是我见过的最差版本:(我知道。我试过使用mainLang参数和不使用mainLang参数。我启动了play clean clean files compile。clean all在我的cli上不是有效的命令对不起,我的意思是“clean files”。是的,最后一个字段为null,这是一种预期行为。正如我所说,我所有的控制器都有这个问题。问题是scala没有处理类型转换。奇怪的是,您仍然看到了错误-scala有一个java类型转换器,如果包含,它将转换类型。请参见此处:似乎导入应该是
import play.Project.\uuuzde>也检查过了。同样的问题之后,你应该对这两个项目进行比较,看看有什么不同:我真的很感兴趣。我将几个应用程序从Play!2.0迁移到Play!2.1,唯一的问题是我的错误(没有仔细阅读文档)。但我承认可能存在错误(Play!2.1似乎仍然有点错误)。很容易给我-1.没有人能找到答案。这不是我在Play!2.1中遇到的第一个问题,是的,我已经检查了差异:/project/project/target和/project/target与Play!2.0应用程序完全不同。因此不可能手动修复。正如我所说的,创建新项目比编辑3个文件更有效对于这种比较来说,启动3个命令IMHOproject/project/target和project/target并不有趣:它们可以被清除和重新生成(您可以手动删除它们)。有趣的部分可能(我猜)在project文件夹的某个地方。
return ok(createOrUpdate.render(Secured.getConnectedUser(), getCustomers(), User.build(user)));
[error] required: User,scala.collection.immutable.List<User>,User
[error] found: User,java.util.List<User>,<null>