下面是我用来从 RubyString 转换为 Java Char 的代码。你能否建议我在 Jruby 中使用更好的方法(自动处理这些类型错误或 jruby 中的一些代码进行转换)
ruby_string="Raj"
java.lang.String.new(col_value)
col_value=str_obj.charAt(0)
下面是我用来从 RubyString 转换为 Java Char 的代码。你能否建议我在 Jruby 中使用更好的方法(自动处理这些类型错误或 jruby 中的一些代码进行转换)
ruby_string="Raj"
java.lang.String.new(col_value)
col_value=str_obj.charAt(0)
首先,JRuby 的行为略有不同,具体取决于您是在 1.8 模式还是 1.9 模式下运行它。对于 JRuby 1.7.0 及更高版本,1.9 是默认值;与其他人一样,1.8 是默认值。要更改默认值,请在命令行上传递--1.8
或传递--1.9
给。jruby
在 1.8 模式下,对字符串的某些操作,例如在单个索引处获取字符,返回数字 ( Fixnum
s),而在 1.9 模式下,它们总是返回字符串。Fixnum
JRuby在 0 到 65535之间的 Ruby 和 Java 之间自动转换char
,因此您可以将 1.8 模式的“字符”值直接传递给接受字符的 Java 方法;例如
str = 'foo'
java_obj.methodThatTakesAChar(str[0])
在 1.9 模式下,由于str[0]
是单字符的字符串,所以必须将其字符转换为数字。您可以使用ord
实例方法执行此操作:
str = 'foo'
java_obj.methodThatTakesAChar(str[0].ord)
我希望这会有所帮助。