gpt4 book ai didi

java - 使用 Java 类时的 JRuby 限制

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:29 25 4
gpt4 key购买 nike

就我对 JRuby 的理解而言,在 JRuby 代码中使用 Java 类是完全可能的,反之亦然,但是,我仍然不明白一些事情。

  • JRuby 可以使用 Java 注释吗?
  • 是否可以在 Java 类上使用 JRuby 的反射?
  • 是否可以在 JRuby 类上使用来自 Java 的反射?
  • 我有 JRuby 中的可执行类吗?
  • 是否可以在 JRuby 脚本中重新定义 Java 类? (就像我可以重新定义例如 C Ruby 中的 Integer 一样)
  • 是否有任何其他限制阻止将 JRuby 用作任何 Java 应用程序的一部分?

最佳答案

  • JRuby 可以使用 Java 注释吗?

没有。 Ruby 没有注解。 ruby2java不过,编译器将允许您添加在编译到类文件时使用的注释。

  • 是否可以在 Java 类上使用 JRuby 的反射?

是的:

java.util.Vector.methods.include? '[]'  #  => true
  • 是否可以在 JRuby 类上使用来自 Java 的反射?

何时使用 BSF 或 JSR223 嵌入 JRuby?仅在这些技术允许的范围内。什么时候用ruby2java?是的。它生成普通的 Java .class 文件。

  • 我有 JRuby 中的可执行类吗?

我不太确定你在问什么。

  • 是否可以在 JRuby 脚本中重新定义 Java 类? (就像我可以重新定义例如 C Ruby 中的 Integer 一样)

是的,您可以在 JRuby 中进行猴子补丁,但是从 Java 端看不到更改,只有 JRuby:

import java.util.Vector
class Vector
def foo
"foo!"
end
end
v = java.util.Vector.new
v.foo # => "foo!"
  • 是否有任何其他限制阻止将 JRuby 用作任何 Java 应用程序的一部分?

很多little gotchas从 JRuby 使用 Java 时比比皆是。 ruby2java 仍处于起步阶段,我不确定它是否已准备好用于生产环境。除此之外,重点更多地放在了使用 BSF 和 JSR223 编写脚本上,这可能适合也可能不适合您的目的。

关于java - 使用 Java 类时的 JRuby 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1589253/

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