将Scala中的类异常:java.lang.Object转换为Scala CaseClass

将Scala中的类异常:java.lang.Object转换为Scala CaseClass,scala,playframework-2.0,securesocial,Scala,Playframework 2.0,Securesocial,这让我发疯了——我正在与scala、social secure等一起玩游戏,当我试图制作一个案例课程时,我总是会遇到这个错误 编辑:与此类似的问题: 编辑:将createIdentityFromUser方法移动到静态同伴类似乎可以解决这个问题。不知道为什么 [ClassCastException: java.lang.Object cannot be cast to securesocial.core.SocialUser] In /Users/tripled153/Development/s

这让我发疯了——我正在与scala、social secure等一起玩游戏,当我试图制作一个案例课程时,我总是会遇到这个错误

编辑:与此类似的问题:

编辑:将createIdentityFromUser方法移动到静态同伴类似乎可以解决这个问题。不知道为什么

[ClassCastException: java.lang.Object cannot be cast to securesocial.core.SocialUser] 
In /Users/tripled153/Development/src/Foundation/playApp/app/service/SecureSocialUserService.scala     at line 58.
54//    }
55
56    println("here2")
57    //val ret = user.map(_.createIdentityFromUser)
58    user.foreach(x => x.createIdentityFromUser)
59    user match{
60      case Some(x) => Some(x.createIdentityFromUser)
61      case None => None
第42行出错。 地图、foreach和匹配所有炸弹和classcastexception,我不明白为什么

下面是为可读性而稍微整理的代码(注意SocialUser扩展了Identity-trait):

以及被调用以生成似乎是问题所在的对象的方法。它的特点是扩展tinkerpop框架VertexFrame接口。我猜这与此有关

  def createIdentityFromUser: SocialUser = {

    return new SocialUser(new UserId(getUserId, getProviderId), getFirstName, getLastName, getName, Some(getEmail),
      None, new AuthenticationMethod("userPassword"), None, None, Some(new PasswordInfo(getPasswordInfoHash, getPasswordInfoSalt)))

  }

我将该方法设置为静态,并使用一个参数,它可以工作。。。不知道为什么,但它解决了问题。在java中,这不会出现。

它实际上只是对createIdentityFromUser的函数调用。我不明白为什么不起作用。我让这个方法是静态的,带了一个参数,它就起作用了。。。不知道为什么。在java中,这不会出现。
  def createIdentityFromUser: SocialUser = {

    return new SocialUser(new UserId(getUserId, getProviderId), getFirstName, getLastName, getName, Some(getEmail),
      None, new AuthenticationMethod("userPassword"), None, None, Some(new PasswordInfo(getPasswordInfoHash, getPasswordInfoSalt)))

  }