注解 @Deprecated 在项目中很常见,它表示此方法已过时,暂时可用,但以后此类或方法不会再更新、后期可能会删除,建议来人别再调用此方法了。
然后还有新的API建议。
当然我们依然可以去引用过时的方法,不过在代码中会有个横线,对于强迫症患者来说,见到此线会不会有少许难受呢?哈哈哈~
@Deprecated 不仅仅用于官方的 api,我们自己项目中也可能有一些老旧的不成熟的方法调用,如果是不希望后续有人继续调用此方法,就应该友好的标记此方法弃用了。
在 Java 代码中,我们只需要在方法上面添加 @Deprecated 即可。
Java @Deprecated
然而在 Kotlin 中不一样,直接添加会出现错误:
Kotlin @Deprecated
原因是它在 @Deprecated 做了加强,它可以给注解添加参数,一方面解释弃用并建议使用替代 API 的信息,另外一方面还能指定可用于替换已弃用的函数,属性或类的代码片段。
@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
总结:
关于我们平常使用 @Deprecated,把replaceWith配置写全,真的是很方便后来者调用替换诶,小技巧。