jruby 中int的使用

由于ruby自动将整数类型转换成long, 但是当使用jruby调用java方法时,可能会遇到java方法的参数是int类型的。此时就会有问题。

之前遇到一个头痛的问题。有如下java类:


package test
pulic class A
{
  public int getID(int id)

  public long getID(long id)
}

jruby调用时:
require 'java'

a = test.A.new

a.getID(1)

上面写法的话,只能调用getID(long id), 而无法调用到getID(int id).

解决办法是,直接定义java的integer对象。

id = Java::JavaLang::Integer.new(1)
a = test.A.new
a.getID(id)

这样的话,就可以顺利调用getID(int id)方法了。

你可能感兴趣的:(java,Ruby,jruby)