Nik*_*nov 8 java inheritance protected kotlin kotlin-interop
我有这种情况:有一个Java类
public class A {
public void overrideMe(B param){
//TODO: override me in Kotlin!
}
protected static class B {
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个Kotlin类,它继承自它并且必须覆盖方法"overrideMe"
class K: A() {
override fun overrideMe(param: B) {
println("Wow!")
}
}
Run Code Online (Sandbox Code Playgroud)
但Kotlin不允许这种行为.
'public'函数公开其'protected(in A)'参数类型B.
有什么方法可以解决这个问题吗?
PS这不仅仅是一个合成案例 - 当我尝试实现自定义Spring AmqpAppender并覆盖它的postProcessMessageBeforeSend方法时,我遇到了这个问题.
好吧,毕竟结论是:纯Kotlin中没有办法解决这种情况。
我希望 AmqpAppender.Event 能够在不久的将来公开。
即使 Java 允许这种行为,在公共方法中使用非公共参数对我来说似乎是一个糟糕的设计(对 Kotlin 的开发人员来说也是如此)。
| 归档时间: |
|
| 查看次数: |
460 次 |
| 最近记录: |