1
本作的另一面可以使用:科特林:方法不能與仿製藥
interface PacketDecoder<out T : Packet> : PacketTranscoder {
fun decode(client: Client, buf: ByteBuf): T
}
我試圖用這個:
interface PacketEncoder<in T : Packet> : PacketTranscoder {
fun encode(packet: T, buf: ByteBuf)
}
雖然PacketDecoder
似乎做工精細,我不能請參閱encode(T, ByteBuf)
方法。 IntelliJ IDEA自動完成甚至不會將其顯示爲選項,並且手動編寫它會導致未解決的參考錯誤。
爲了解決它,我目前使用這個黑客,但我不認爲這是做到這一點的正確方法。
fun <P : T> encode(packet: P, buf: ByteBuf)
我已經嘗試實現它的理念,它沒有錯誤的偉大工程。 https://gist.github.com/alien11689/67ac3edbe562555acc7f – Alien11689
Works here:http://try.kotlinlang.org/#/UserProjects/hrcd2j34aellk5fdg7gv7sfeei/u9ue9h9dr1tkv98gdpthh3dea1 –