kotlin - 不推荐使用的 kotlin 函数在纯 Java 项目上没有警告
问题描述
kotlin
我有一个纯粹在库项目中编写的测试类。
class Test{
@Deprecated(message = "Use other function")
fun testFunction(id: String): Test {
this.testId = id
return this
}
}
我已经弃用了带有注释的testFunction() 。Deprecated
BtwDeprecated
类在 kotlin 包下。当我在 kotlin 项目中测试这个不推荐使用的功能时,它按预期工作(ide 显示不推荐使用的警告和删除线)
示例:测试()。测试函数(“测试”)
但是在 java 项目中,它不会显示警告或删除线来功能再见。当我打开已弃用函数的声明时,如下所示
@Deprecated(
message = "Use other function"
)
@NotNull
public final Test testFunction(@NotNull String var1) {
Intrinsics.checkParameterIsNotNull(var1, "id");
this.testId = var1;
return this;
}
任何帮助,将不胜感激
解决方案
kotlin.Deprecated
在 Kotlin 中,标有注解的函数、属性和类也会在生成的 JVM 字节码中获得Deprecated属性。这允许 Java 编译器将它们视为已弃用并发出相应的警告。
以 Kotlin 中已弃用的此功能为例: https ://github.com/JetBrains/kotlin/blob/v1.3.50/libraries/stdlib/common/src/generated/_Ranges.kt#L171-L175 如果您尝试从java调用它
kotlin.ranges.RangesKt.intRangeContains(null, 1.0);
javac 编译器将报告以下警告:
Warning:(55, 31) java: intRangeContains(kotlin.ranges.ClosedRange<java.lang.Integer>,double) in kotlin.ranges.RangesKt___RangesKt has been deprecated
推荐阅读
- path-finding - 路径查找器,但获取所有可用路径
- c++ - *ptr2 = ptr 是什么意思?
- javascript - chrome js 和 jquery:添加链接?
- reactjs - 如何在带有图例的圆环图中间显示标题?(react-highcharts)
- c# - 如果字符数超过 20 C#,则从最后一个逗号拆分字符串
- if-statement - 如果用户在线或离线,如何使用 TWIG 显示?
- python - 有没有办法通过添加额外的列来取消分组 groupby 数据框
- html - 试图限制 html 表中图像的大小,但它会不断调整大小以填充空间
- c# - 在 Azure 函数中将服务总线与 SQL Server 一起使用的最有效方法是什么?
- c# - C# 有效地基于 Criteria 组合多个类列表