我有一个开放的Kotlin类,它的属性为value: String。
open class PropHolder {
open val value: String = ""
}有一个带有函数String getValue()的Java接口。
public interface Property {
public String getValue();
}我有一个子类,它继承了开放的Kotlin类并实现了Java接口。
class Child : PropHolder(), Property {
override fun getValue() = value
}遇到平台声明之间的冲突:
我试过:
class Child : PropHolder(), Property {
override val value: String = ""
@JvmName("getHeldValue") get() = field
override fun getValue() = value
}以及:
class Child : PropHolder(), Property {
@JvmName("getPropValue")
override fun getValue() = value
}但是,因为这些都是继承的方法,所以我实际上不能重写任何一个方法的JvmName。
有什么办法让这件事成功吗?
发布于 2022-03-28 02:05:25
看起来我可能遇到了一个未解决的问题:https://youtrack.jetbrains.com/issue/KT-6653
目前的共识是,可能会有一个保留不久,以探索潜在的选择,但目前还没有很好的解决方案。
https://stackoverflow.com/questions/71641566
复制相似问题