Kotlin:从Java调用NoSuchMethod时

我打包了一个kotlin项目,当我在其他kotlin项目上使用它时,它按预期工作。 然而,从一个Java项目中使用,我得到了类构造函数的exception:

这是SensorData.kt文件

package io.igx.iot.model import com.fasterxml.jackson.annotation.JsonProperty import java.time.LocalDate import java.util.* /** * @author Vinicius Carvalho */ data class SensorData(val type: String, val name: String, @JsonProperty("@timestamp") val timestamp: Date, val value: Double, val thermostatId: String) data class Column(val type: String, val position: Int) data class Report(val device: String, val id: String, val start: LocalDate, val end: LocalDate) inline fun String.safeFloat() : Float { return try { this.toFloat() } catch (e: NumberFormatException){ 0.0f } } inline fun String.safeDouble() : Double { return try { this.toDouble() } catch (e: NumberFormatException){ 0.0 } } inline fun String.safeInt() : Int { return try { this.toInt() } catch (e: NumberFormatException){ 0 } } inline fun String.safeLong() : Long{ return try { this.toLong() } catch (e: NumberFormatException){ 0L } } 

当我运行一个使用内部使用这个数据类的类的Java应用程序时,我得到一个exception:java.lang.NoSuchMethodError:io.igx.iot.model.SensorData。(Ljava / lang / String; Ljava / lang /字符串; Ljava / util的/日期; DLjava /郎/字符串;)V

我在数据类中丢失了什么?

更新:

要明确的是,SensorData类永远不会从java代码中调用,而是另一个名为EcobeeParser的kotlin类调用它:

 sensors.add(SensorData(column.type, entry.key, date, read, report.id)) 

这个类的EcobeeParser在java代码中调用如下:

EcoBeeParser parser = new EcoBeeParser(new FileInputStream(new File("")), 19);

这是什么失败,但是在一个kotlin项目中,这是有效的:

val parser = EcobeeParser(FileInputStream(File)), 19)