前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于 @Deprecated

关于 @Deprecated

作者头像
用户8928967
发布2022-12-13 16:11:14
1.5K0
发布2022-12-13 16:11:14
举报
文章被收录于专栏:用户8928967的专栏

注解 @Deprecated 在项目中很常见,它表示此方法已过时,暂时可用,但以后此类或方法不会再更新、后期可能会删除,建议来人别再调用此方法了。

然后还有新的API建议。

当然我们依然可以去引用过时的方法,不过在代码中会有个横线,对于强迫症患者来说,见到此线会不会有少许难受呢?哈哈哈~

@Deprecated 不仅仅用于官方的 api,我们自己项目中也可能有一些老旧的不成熟的方法调用,如果是不希望后续有人继续调用此方法,就应该友好的标记此方法弃用了。

在 Java 代码中,我们只需要在方法上面添加 @Deprecated 即可。

Java @Deprecated

然而在 Kotlin 中不一样,直接添加会出现错误:

Kotlin @Deprecated

原因是它在 @Deprecated 做了加强,它可以给注解添加参数,一方面解释弃用并建议使用替代 API 的信息,另外一方面还能指定可用于替换已弃用的函数,属性或类的代码片段。

代码语言:javascript
复制
@Deprecated(
    message = "Use newFunction instead",
    replaceWith = ReplaceWith(
        expression = "newFunction(key,value)",
    )
)
fun deprecatedFunction(key: String, value: String) {

}

fun newFunction(key: String, value: String){

}

由此点入Deprecated源码说明:

Deprecated

message: 解释弃用并建议使用替代 API 的信息。

replaceWith: 指定可用于替换已弃用的函数,属性或类的代码片段。如上面代码片段,在引用到了deprecatedFunction可以看到提示,直接点击替换则可替换成新的api了:

tip

level: 指定如何在代码中报告已弃用的元素用法,level 存在三种枚举。

DeprecationLevel

  • WARNING:仅用于警告 API 使用者,不会中断其编译或运行时使用。【默认】
  • ERROR:如果调用了这类API直接编译报错
  • HIDDEN:直接隐藏该 API,代码无法访问。

总结:

关于我们平常使用 @Deprecated,把replaceWith配置写全,真的是很方便后来者调用替换诶,小技巧。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 妮K妮K妮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档