由于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类:
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)方法了。