以下は、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 の動作が少し異なります。JRuby 1.7.0 以降では、1.9 がデフォルトです。その他では、1.8 がデフォルトです。デフォルトを変更するには、コマンド ラインで--1.8
または--1.9
を渡します。jruby
1.8 モードでは、単一のインデックスで文字を取得するなど、文字列に対する特定の操作は数値 ( Fixnum
) を返しますが、1.9 モードでは常に文字列を返します。JRubyFixnum
は 0 から 65535 までの Ruby と Javachar
の間で自動的に変換するため、文字を受け入れる Java メソッドに 1.8 モードの「文字」値を直接渡すことができます。例えば
str = 'foo'
java_obj.methodThatTakesAChar(str[0])
1.9 モードでは、str[0]
は 1 文字の文字列であるため、その文字を数値に変換する必要があります。ord
インスタンス メソッドを使用してこれを行います。
str = 'foo'
java_obj.methodThatTakesAChar(str[0].ord)
それが役立つことを願っています。