美文网首页
kotlin代码继承java接口/抽象类注意事项

kotlin代码继承java接口/抽象类注意事项

作者: rainmanhhh | 来源:发表于2022-04-01 09:28 被阅读0次

    假设java接口为

    interface IFoo {
      foo(Integer p);
    }
    

    kotlin继承它时,代码为

    class FooImpl {
      override fun foo(p: Int?) {
      }
    }
    

    注意:即使java中已经用@NotNull注解标明了参数p不可能为null,kotlin中也不能把p的类型从Int?改为Int,因为kotlin编译后Int?会转成Integer,而Int会转成int,两者不一致会造成子类无法自动继承父类的注释(鼠标悬停后不显示)。非primitive类型,例如String,则不会有这个问题,可以按照实际情况在子类声明为可空或不可空

    相关文章

      网友评论

          本文标题:kotlin代码继承java接口/抽象类注意事项

          本文链接:https://www.haomeiwen.com/subject/pkaojrtx.html