加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Play Framework中混合使用scala和java

发布时间:2020-12-16 10:03:25 所属栏目:安全 来源:网络整理
导读:我有一个看起来像这样的 Java文件: package AuthorizeNetFingerprint;class Fingerprint { private static Log logger = LogFactory.getLog(Fingerprint.class); private long sequence; private long timeStamp; private String fingerprintHash; private
我有一个看起来像这样的 Java文件:

package AuthorizeNetFingerprint;


class Fingerprint {
    private static Log logger = LogFactory.getLog(Fingerprint.class);

    private long sequence;
    private long timeStamp;
    private String fingerprintHash;

    private Fingerprint() {
    }

    /**
     * Creates a fingerprint with raw data fields.
     * 
     * @param loginID
     * @param transactionKey
     * @param sequence : this number will be concatenated with a random value
     * @param amount
     * @return A Fingerprint object.
     */
    public static String createFingerprint(String loginID,String transactionKey,long sequence,String amount) {
         return transactionKey;
    }
}

我试图像这个scala一样访问它:

val fingerprint = new AuthorizeNetFingerprint.Fingerprint
val x_fp_hash = fingerprint.createFingerprint(x_api_login_id,transaction_key,x_fp_sequence,x_amount)

它给了我这个错误:

对象AuthorizeNetFingerprint包中的指纹无法在AuthorizeNetFingerprint包中访问

是否可以在Play Framework中混合使用scala和java?

我做错了什么?

编辑

我需要:
????公共类指纹

代替

class Fingerprint

解决方法

三件事:

>正如您已经想到的那样,您的指纹类需要公开.
>你已经将Fingerprint的构造函数设为私有;你无法实例化它.
>应该通过Scala中的类伴随对象访问Java类中的任何静态方法.

您的示例中的所有Scala代码都应替换为:

val x_fp_hash = AuthorizeNetFingerprint.Fingerprint.createFingerprint(…)

这适用于Scala(2.9.1)控制台,使用sbt(0.11.3)编译.

是的,您可以在Play2应用程序中混合使用Java和Scala,只需将Java代码放在app目录中即可.请注意,Java类需要位于相应的包目录中,而Scala类则不是这样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读