在Java中实例化scala.Int

在Java中实例化scala.Int,java,scala,playframework-2.0,scala-java-interop,securesocial,Java,Scala,Playframework 2.0,Scala Java Interop,Securesocial,我正在为Play2框架的插件编写持久层。我在以下网站上找到了一个例子: 但是API已经更改,所以我不能使用securesocial.core.java.OAuth2Info。SecureSocial是由Scala编写的,这个类是Java前端。因此,我决定直接在以下位置使用Scala: case class OAuth2Info(accessToken: String, tokenType: Option[String] = None, expiresIn: O

我正在为Play2框架的插件编写持久层。我在以下网站上找到了一个例子:

但是API已经更改,所以我不能使用
securesocial.core.java.OAuth2Info
。SecureSocial是由Scala编写的,这个类是Java前端。因此,我决定直接在以下位置使用Scala:

case class OAuth2Info(accessToken: String, tokenType: Option[String] = None,
                  expiresIn: Option[Int] = None, refreshToken: Option[String] = None)
我的结果是:

package models.security.securesocial;

import models.AbstractModel;
import scala.Option;
import securesocial.core.*;

import javax.persistence.Entity;

/**
 * Persistence wrapper for SecureSocial's {@link } class.
 *
 * @author Steve Chaloner (steve@objectify.be)
 */
@Entity
public class MPOOAuth2Info extends AbstractModel
{
    public String accessToken;

    public String tokenType;

    public Integer expiresIn;

    public String refreshToken;

    public MPOOAuth2Info(){
        // no-op
    }

    public MPOOAuth2Info(OAuth2Info oAuth2Info){
        this.accessToken = oAuth2Info.accessToken();
        this.tokenType = oAuth2Info.tokenType().get();
        this.expiresIn = scala.Int.unbox(oAuth2Info.expiresIn().get());
        this.refreshToken = oAuth2Info.refreshToken().get();
    }

    public OAuth2Info toOAuth2Info(){
        return new OAuth2Info(accessToken, Option.apply(tokenType), Option.apply(SOME_TRANSFORMATION(expiresIn)), Option.apply(refreshToken));
    }
}
但是我在将
scala.Int
转换为
java.lang.Integer
类型时遇到了问题。 要将
scala.Int
转换为
java.lang.Integer
我使用了
scala.Int.unbox()
。这是连接方式吗?我不知道如何将
java.lang.Integer
转换为
scala.Int
:在代码中我键入了伪代码
一些转换()。如何正确实现这一转变

谢谢

scala.Int.unbox(新的java.lang.Integer(3))
给出了
Int=3


scala.Int.box(3)
自动透明地给出
Integer=3

scala框和取消框。此外,
scala.Int
是一种虚构。当存储在局部变量中、作为形式参数传递或存储在类中时,它是本机的
int
(Java/JVM)。但是,当必须通过参数化/泛型类型的值进行传输时,必须对其进行装箱和解除装箱。(有一个例外,当所讨论的类型参数是专门化的,但那是另一回事。)

看看源代码,似乎将scala.Int转换为java.lang.Integer是scala.Int.box(),我不敢,但现在你这么说了。:)
package models.security.securesocial;

import models.AbstractModel;
import scala.Option;
import securesocial.core.*;

import javax.persistence.Entity;

/**
 * Persistence wrapper for SecureSocial's {@link } class.
 *
 * @author Steve Chaloner (steve@objectify.be)
 */
@Entity
public class MPOOAuth2Info extends AbstractModel
{
    public String accessToken;

    public String tokenType;

    public Integer expiresIn;

    public String refreshToken;

    public MPOOAuth2Info(){
        // no-op
    }

    public MPOOAuth2Info(OAuth2Info oAuth2Info){
        this.accessToken = oAuth2Info.accessToken();
        this.tokenType = oAuth2Info.tokenType().get();
        this.expiresIn = scala.Int.unbox(oAuth2Info.expiresIn().get());
        this.refreshToken = oAuth2Info.refreshToken().get();
    }

    public OAuth2Info toOAuth2Info(){
        return new OAuth2Info(accessToken, Option.apply(tokenType), Option.apply(SOME_TRANSFORMATION(expiresIn)), Option.apply(refreshToken));
    }
}