JRuby字符串类方法不可用

时间:2013-02-10 14:42:22

标签: ruby jruby

我似乎无法从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

1 个答案:

答案 0 :(得分:3)

我认为这就是你要做的事情:

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

如@Jesper所述,toUpperCase是一个带String类的实例方法。将它用作静态方法是行不通的。

另请注意,返回的类是本机Ruby类型。