java - 将 Parse Java SDK 翻译成 JRuby

标签 java jruby parse-platform

我想看看这个 Java code会在 JRuby 中查找:

 ParseQuery query = new ParseQuery("MyClass");
 query.getInBackground(myId, new GetCallback() {
   public void done(ParseObject object, ParseException e) {
     if (e == null) {
       objectWasRetrievedSuccessfully(object);
     } else {
       objectRetrievalFailed();
     }
   }
 });

对我来说最大的困惑是匿名内部类。这是我最好的第一个猜测:

query = ParseQuery.new("GameScore")
query.getInBackground("xWMyZ4YEGZ", Class.new(GetCallback) do
  def done(object, e)
    #  ...
  end 
end.new)

更新:基于此编辑:http://www.ruby-forum.com/topic/188599#823271

最佳答案

在 JRuby 中表达它的语法看似简单。 JRuby 有一个称为“闭包转换”的特性,其中传递给方法的闭包可以转换为适当的 Java 接口(interface)。来自JRuby docs :

This not only works for event listeners or Runnable, but basically for any interface. When calling a method that expects an interface, JRuby checks if a block is passed and automatically converts the block to an object implementing the interface.

因此,您的代码如下所示:

query.in_background 'xWMyZ4YEGZ' { |object, e|
  # do stuff
}

'calling Java from JRuby' JRuby wiki 上的页面是解决此类问题的良好资源。

关于java - 将 Parse Java SDK 翻译成 JRuby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963400/

相关文章:

java - 如何从Vue中的Javascript调用Android中的java函数?

jar - 如何使用 JRuby 读取 Jar 中的文件

java - 是否有适用于 Jython 或 JRuby 的框架,或者您可以在 JVM 上运行 py 或 ruby​​ 应用程序吗?

java - 作为 Java 开发人员学习 JRuby 还是 Ruby?

ios - 将配置图像解析为 UIImageView

java - 在 Android 中未收到解析推送通知

java - Android:onSensorChanged 的​​替代方案?当手机背面放在 table 上时(没有移动时)没有加速度计数据

java - 我需要将监听器添加到复选框,并且选择的更改显示在 textArea 中

java - 从作为 Windows 服务运行的 Java 应用程序打印 Word 文档 (.docx)

ios - 如何在 PFQueryTableViewController 中调用 queryForTable 从 Parse 云重新加载数据?