samp
04/09/2022, 4:14 PMsealed class PowerTool(
@JvmField open val name: String,
@JvmField open val price: Double
) {
data class CircularSaw(
val diameter: Int,
val cordless: Boolean,
override val name: String,
override val price: Double
) : PowerTool(name, price)
data class DrillPress(
val rpm: Int,
override val name: String,
override val price: Double
) : PowerTool(name, price)
}
Error: JvmField can only be applied to final property
My requirement for jvm field is: I need @JvmField for java consumers as I don’t want to refactor the code to use the setter/getter method and want to use as a field.
Any thoughts?Brett McGinnis
04/09/2022, 5:07 PMlouiscad
04/09/2022, 8:51 PMdata
modifier, and removing the `override val`s.samp
04/09/2022, 9:12 PMdata
modifier and remove override val
and use a different name for it?samp
04/09/2022, 9:17 PMephemient
04/09/2022, 9:30 PM@JvmField
shouldn't have been allowed in the first place, it leads to broken code generation elsewhere in the compilerephemient
04/09/2022, 9:31 PMsealed class PowerTool(
@JvmField val name: String,
@JvmField val price: Double
) {
class CircularSaw(
val diameter: Int,
val cordless: Boolean,
name: String,
price: Double
) : PowerTool(name, price)
class DrillPress(
val rpm: Int,
name: String,
price: Double
) : PowerTool(name, price)
}
samp
04/10/2022, 1:02 AMwhen
expression?ephemient
04/10/2022, 1:07 AMlouiscad
04/10/2022, 10:44 PMsamp
04/12/2022, 3:26 AMoverride fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
return true
}
override fun hashCode(): Int {
return javaClass.hashCode()
}