微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以调用在Java方法中作为参数传递的scala方法?

我正在通过Java项目使用Play框架,并且希望将模板(Scala函数)作为参数传递给我的Java方法之一.

我想做这样的事情:

public static Result ok(ScalaFunction template, Object obj) {
    // do some work, then :
    return ok(template.render(obj));
}

MyClass.ok(views.html.mytemplate, SomeModel.find.findList());

当然,这是行不通的.我以为views.html.mytemplate是一个类,所以在我的方法中切换到views.html.mytemplate.class和公共静态结果ok(Class template,Object obj),但是我无法在其上调用render.

可以做这样的事情吗?

如果有人知道更好的选择,那么我要实现的目标是:如果Accept标头为“ application / json”,则返回obj的JSON表示形式;如果Accept标头为“ text”,则返回编译后的模板(在第一个参数中给出) / html”.

解决方法:

假设您的Scala函数采用并返回一个Object,因此其类型为Function1< Object,Object>.那么您的Java方法应如下所示:

public Result ok(Function1<Object, Object> template, Object obj) {
    // do some work, then:
    return ok(template.render(obj));
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐