小编Nik*_*nov的帖子

使用公共方法继承Java类,接受Kotlin中的受保护类

我有这种情况:有一个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方法时,我遇到了这个问题.

java inheritance protected kotlin kotlin-interop

8
推荐指数
1
解决办法
460
查看次数

标签 统计

inheritance ×1

java ×1

kotlin ×1

kotlin-interop ×1

protected ×1