Skip to content

Do not autoimport scala.* when parsing .java files #7312

Closed
@ekrich

Description

@ekrich

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; }

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions