2
當Java方法的簽名具有原語double和參數I時嘗試從JRuby調用Java對象的方法時出現錯誤pass是一個Ruby BigDecimal。是否存在可能存在的任何隱式轉換或是否需要明確處理?如果這有什麼區別,我使用send來調用Java對象的方法。從Ruby中調用Java方法,該方法使用Ruby BigDecimal加載Java原語double
java_object.send :some_method, a_big_decimal
(這實際上可以調用與Java對象的不同類型簽名的方法,所以我不只是要在這裏不用擔心BigDecimals的這就是爲什麼我想避免明確如果可能的話處理得)
我也試着
java_object.send :some_method, a_big_decimal.to_java
但是,這會產生一個不同的錯誤:
TypeError: cannot convert instance of class org.jruby.java.proxies.ConcreteJavaProxy to double
是的,這就是我最終做的。我只是希望有一種隱式的方式,因爲在我的情況下,參數可以是除BigDecimal之外的其他類型。我必須檢查is_a?首先BigDecimal,它感覺有點醜。 –