Kotlin覆盖Java setter
我用这个方法实现一个java接口(Command):
void setInputStream(InputStream in);
我想用Kotlin制定者来覆盖这个:
class ProxyCommand : Command { lateinit var _inputStream: ChannelPipedInputStream var inputStream: InputStream get() = this._inputStream set(value) { // This should override it. this._inputStream = (value as ChannelPipedInputStream) } }
但是我得到这个错误在set(value)
:
Accidental override: The following declarations have the same JVM signature (setInputStream(Ljava/io/InputStream;)V): public final fun (value: InputStream): Unit defined in ... public abstract fun setInputStream(`in`: InputStream!): Unit defined in ...
它说这是一个意外的重载,但它不是偶然的…
我想要什么? 或者我必须重写setInputStream
方法。 我更喜欢kotlin二传手
这是你的问题的答案:
https://stackoverflow.com/a/32971284/8073652
或者我必须重写setInputStream方法。 我更喜欢kotlin二传手
这是你应该做的一个解决方法:
class ProxyCommand : Command { override fun setInputStream(`in`: InputStream) { TODO("not implemented") } private lateinit var inputStream: ChannelPipedInputStream }