kotlin实现java接口时的重载问题


#1

首先
如下kotlin代码是没有问题的

class InterfaceB  {
      fun printInt(num: Int) {
    }
     fun printInt(num: Int?) {
    }
}

但是如果让InterfaceB实现一个java接口,InterfaceB就会报错,如下

public interface Interface {

    void printInt(int num);

    void printInt(Integer num);

}


#2

直接这样就正常了:


class InterfaceCls :Interface{
    override fun printInt(num: Int) {

    }

    /*override fun printInt(num: Int?) {

    }*/
}

#3

我知道改成下面这样可以,我是想问之前报错的原因是什么

class InterfaceCls :Interface{
    override fun printInt(num: Int) {

    }

    /*override fun printInt(num: Int?) {

    }*/
}

#4

kotlin 里都是包装类型,这一点和java不一样,所以重载该类的时候,其实都是按照包装类型重载的,所以算作一个


京ICP备16022265号-2 Kotlin China 2017 - 2018
本站由腾讯云提供计算服务