【问题标题】:How to call Scala method in Java class如何在 Java 类中调用 Scala 方法
【发布时间】:2014-04-11 17:04:28
【问题描述】:

由于我需要 Play 应用程序加载和读取单个消息文件,我正在考虑从我的 Java 的 Application 类调用 MessagesPlugin Scala 类的 loadMessages() 方法并传递单个消息文件的路径.我假设当我的应用程序启动时,它将调用 Scala 的 loadMessages() 方法并创建单个消息文件的映射。如果我的理解有误请指正。

由于我是 Scala 编程的新手,如果我在 Java 类中以错误的方式调用 Scala 方法,请纠正我:

import play.api.i18n.MessagesPlugin;
class Application{
      private static boolean renderHomePage(){
        language="en";        
        String configPath=System.getProperty("IUI_CONFIG_DIR");
        MessagesPlugin.loadMessages(configPath+"/"+language+"/messages."+language);
        changeLang(language);       
        setSessionData(true);
        return true;
    }
}

但我上面的代码无法识别loadMessages()。我需要导入其他东西吗?

【问题讨论】:

    标签: java scala playframework-2.0


    【解决方案1】:

    如您所见here,loadMessages 受到保护。您必须扩展 MessagesPlugin 才能调用该方法。

    【讨论】:

    • 在您的链接中,方法显示为受保护,在此 link loadMessages 方法中是私有的。所以我应该参考哪一个。
    • 取决于您的版本。我的链接来自master(最新版本),你的来自2.0版。
    • 我在我的项目中使用 2.1.3 版本的 play 并且 loadMessages 方法是私有的。我们可以在 java 中重写 scala 的私有方法吗?如果可以,任何链接或示例都会非常有用。
    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    • 2014-01-13
    • 2019-05-19
    • 2012-03-30
    相关资源
    最近更新 更多