Syntax 正确的jruby语法,用于要求java并包括java类
我似乎找不到在Jruby中使用java类的当前语法。 本文列出了:Syntax 正确的jruby语法,用于要求java并包括java类,syntax,jruby,Syntax,Jruby,我似乎找不到在Jruby中使用java类的当前语法。 本文列出了: include Java include 'java' require 'java' 作为有效选项,尽管它说最后一个选项是1.0之前的版本,不起作用。 然而,用户说使用需要“java” 包括我看过的课程 MyClass = Java::some.package.MyClass include_class Java::some.package.MyClass include_class 'some.package.MyClass
include Java
include 'java'
require 'java'
作为有效选项,尽管它说最后一个选项是1.0之前的版本,不起作用。然而,用户说使用
需要“java”
包括我看过的课程
MyClass = Java::some.package.MyClass
include_class Java::some.package.MyClass
include_class 'some.package.MyClass'
java_import Java::some.package.MyClass
有没有一种更好的方法
目前我收到一些“重新定义X”的消息,因为我有几个java类与我的ruby类同名。保留java名称空间的最佳方法是什么,这样我就不会得到这些,如果我从不在同一个文件中使用这两个ruby/java类,那么这种重新定义是否有任何问题(除了明显的java类先例ruby类之外)?个人而言,我总是使用
要求“java”
如果名称空间发生冲突,我建议不要包含或导入,而是指定完全限定的类名,例如
my_instance=Java::JavaUtil::Date.new
…其中,Java::
是所有Java类的顶级模块,JavaUtil::
是我想要的类的完整包名,在适当的情况下,并挤在一起,Date
是实际的类名。我更喜欢
require 'java'
java_import java.lang.System
我认为选择require'java'
并不重要,只是个人偏好。另一方面,由于以下原因,Saidjava_import
是首选
Java和JRuby类之间的名称冲突。出于代码可读性或维护目的,我建议避免对两个不同的类使用相同的名称,除非您打算重新打开它
更新:您确定“重定义X…”错误是由Java和JRuby类的名称相同引起的吗?我通常会出现这个错误,因为我多次导入同一个java类(有时在不同的地方,有时我多次加载同一个文件)。ya它似乎发生冲突。当我实例化一个包含大量java类的对象时(仅一次),我得到了这个消息。我有一个ruby“Supplier”类,还包括一个带有include_类的“new.my_app.Supplier”java类