Closed
Description
overview
Calling Java methods that return a non-primitive Java object from Scala causes a runtime error. Examples:
java.lang.Long
java.lang.Boolean
...
minimized code
package beanconfig;
public class NumbersConfig {
private long longVal;
private Long longObj;
public long getLongVal() { return longVal; }
public void setLongVal(long longVal) { this.longVal = longVal; }
public Long getLongObj() { return longObj; }
public void setLongObj(Long longObj) { this.longObj = longObj; }
}
Calling code.
assertEquals(4L, beanConfig.getLongObj)
result
[error] Test org.ekrich.config.impl.ConfigBeanFactoryTest.testCreateNumber failed: java.lang.NoSuchMethodError: beanconfig.NumbersConfig.getLongObj()J, took 0.059 sec
[error] at org.ekrich.config.impl.ConfigBeanFactoryTest.testCreateNumber(ConfigBeanFactoryTest.scala:115)
expectation
Code should run.
work around
Fully specify return value
public java.lang.Long getLongObj() { return longObj; }