繁体   English   中英

在 Kotlin 中初始化抽象 class

[英]Initialize abstract class in Kotlin

I am working on kotlin project where I need to initialize abstract class, I can achieve this easily in java but not able to do it in kotlin, what is correct way to achieve this.

例如在 java 我已经这样做了: -

abstract class BaseClass implements E {
    static abstract class C implements SomeCallback {
        void abc();
        void def();
    }
}

class V extends BaseClass {
    V(D d) {
        // ...
    }
}

class S {
    V.C c = new V.C() { // instantiate abstract class
        @Override
        public void abc() {
            // ...
        }

        @Override
        public void def() {
            // ...
        }
    }
}

这是我的 Kotlin 代码:-

BaseClass I am using in java .

class V : BaseClass(){

}

class S{

  fun prepareV(){
     val cal = object : V.C(){
                 //Here I am getting error not able to call V.C in kotlin 


           }

}

}

This is how I have achieved this in java, but I am not able to achieve same in kotlin..its not letting me call abstract class in class S. Please guide me for correct way

Kotlin将嵌套的 class 视为绝对值。 您必须使用完全限定名称BaseClass.C而不是使用子类V.C的名称。

 object : BaseClass.C() { ... }

要解决此问题,您可以在V中重新声明C

class V : BaseClass() {
    abstract class C : BaseClass.V()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM