gpt4 book ai didi

java - 将 Ruby block 传递给 Java 方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:19:19 25 4
gpt4 key购买 nike

我需要我的 JRuby 方法来接收关于 Java 方法中正在发生的事情的报告并采取相应的行动:

def my_long_running_method
# ... do stuff ...

jObject.count_all_disk_files do |number_of_files|
stream.write "#{number_of_files} files found so far."
end

# ... do more stuff ...
end

我看到了this question但我不明白我需要做什么。

我了解 Ruby 很长时间,也了解一点 Java。该项目需要使用 JRuby,因为旧的 Java 代码需要与新的 Ruby 代码集成。

最佳答案

有关完整引用,请参阅 Calling Java From JRuby wiki page ,特别是关于 closure conversion 的部分.对您的问题的简短回答是,您的 Java 方法 count_all_disk_files 将需要接受具有单一方法的接口(interface)(“功能接口(interface)”)。然后 JRuby 将能够使用 block 中的代码自动实现该接口(interface)。

关于java - 将 Ruby block 传递给 Java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21058066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com