将 Java 代码转换为 JRuby

Converting Java code to JRuby

我在 JRuby 项目中使用一些 Java 代码来连接到 MQ。我是 Java 的新手,不知道如何在 JRuby 中使用 Java 的以下语句。

QueueConnection con = factory.createQueueConnection();
QueueSession session = con.createQueueSession(false, session.AUTO_ACKNOWLEDGE);
session.start();

其中 QueueConnection 和 QueueSession 是 Java 类 在顶部导入的

java_import javax.jms.QueueConnection
java_import javax.jms.QueueSession

谢谢

在Java中:

  • 变量必须声明它们的类型。 QueueConnection con = ...表示变量con的类型是QueueConnection。 Ruby 中也存在类型,但它们不是显式的,因此您只需说 con = ....
  • 语句必须以分号结束。 Ruby.
  • 中不需要它们

此外,您显示的代码不太正确,因为 session 变量在声明之前已在 session.AUTO_ACKNOWLEDGE 中使用。 AUTO_ACKNOWLEDGEQueueSession class 的静态字段,因此代码应为 QueueSession.AUTO_ACKNOWLEDGE。在 JRuby 中,可以使用 :: 语法而不是 ..

来访问静态字段

因此我猜你的代码段的等效 JRuby 代码是这样的:

con = factory.createQueueConnection()
session = con.createQueueSession(false, QueueSession::AUTO_ACKNOWLEDGE)
session.start()