0

JRuby 内から Java の文字列メソッドを呼び出すことができないようです。ただし、Math クラスでも同じスタイルの構文が機能します。私は何を間違っていますか?

#! /usr/bin/env jruby

require 'rubygems'
require 'java'

puts java.lang.Math::max(1000,200)
puts java.lang.Math::PI

# this doesn't work 
puts java.lang.String::toUpperCase("we, the people")

# this doesn't work either 
JString = java.lang.String
puts JString.toUpperCase('We, the people')

#toUpperCase exists though, see below
puts java.lang.String.java_class.declarSed_instance_methods
4

1 に答える 1

3

これがあなたがやろうとしていることだと思います:

java.lang.String.new("we, the people").toUpperCase

@Jesper が述べたように、toUpperCase は String クラスのインスタンス メソッドです。静的メソッドとして使用すると機能しません。

また、返されるクラスはネイティブの Ruby 型であることに注意してください。

于 2013-02-10T14:48:18.447 に答える