首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

微知识#1 Kotlin的@JvmStatic和@JvmField 注解

这是关于 Java 静态方法和静态变量的一段代码:

我们把它转换成 Kotlin 代码,会得到这样的结果:

静态方法和静态变量会被放在 当中,成为伴生方法和伴生常量。而这时候,会发现在 Java 中调用它们的方式会不一样,如下:

如果要使转换后的 Kotlin 代码在 Java 上调用起来和以前的习惯一样,则需要分别使用 和 注解,才能使它们暴露为静态方法或静态字段,如下:

这样 Java 对 Kotlin 的调用习惯就和以前一样了:

关于这一点,在《Android Kotlin 指南》的文档中有提到,分别如下:

伴生函数:

在 “companion object” 中的公共函数必须用使用 注解才能暴露为静态方法。

如果没有这个注解,这些函数仅可用作静态 Companion 字段上的实例方法。

伴生常量:

在 中的公共、非 的属性实际上为常量必须用 注解才能暴露为静态字段。

如果没有这个注解,这些属性只能作为静态 字段中奇怪命名的 ‘getters’ 实例。而只使用 而不是 的话,会将奇怪命名的 ‘getters’ 移到类的静态方法中,但仍然是不正确的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180816G0DY0H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券