Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java类中调用Scala方法_Java_Scala_Playframework 2.0 - Fatal编程技术网

如何在Java类中调用Scala方法

如何在Java类中调用Scala方法,java,scala,playframework-2.0,Java,Scala,Playframework 2.0,由于我需要Play应用程序加载并读取单个消息文件,所以我考虑从Java的应用程序类调用Scala的MessagesPlugin类的loadMessages()方法,并传递单个消息文件的路径。我假设当我的应用程序启动时,它将调用Scala的loadMessages()方法并创建单个消息文件的映射。如果我的理解有误,请纠正 由于我对Scala编程一无所知,如果我以错误的方式在Java类中调用Scala方法,请纠正我: import play.api.i18n.MessagesPlugin; clas

由于我需要Play应用程序加载并读取单个消息文件,所以我考虑从Java的
应用程序
类调用Scala的
MessagesPlugin
类的
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()
。是否需要导入其他内容。

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

在您的链接中,该方法显示为受保护,在此loadMessages中,该方法是私有的。因此,我应该引用哪个方法。具体取决于您的版本。我的链接来自master(最新版本),你的链接来自2.0版本。我在我的项目中使用2.1.3版本的play,其中loadMessages方法是私有的。我们可以在java中重写scala的私有方法吗?如果可以,任何链接或示例都将非常有用。