【发布时间】:2018-08-12 17:48:41
【问题描述】:
在 Java 中,我们可以像这样创建一个实用程序类:
final class Utils {
public static boolean foo() {
return false;
}
}
但是如何在 Kotlin 中做到这一点?
我尝试在object 中使用函数:
object Utils {
fun foo(): Boolean {
return false
}
}
但是当从 Java 代码调用这个方法时,它需要添加INSTANCE。例如:Utils.INSTANCE.foo()。
然后我更改为将其声明为顶级函数(不带class 或object):
@file:JvmName("Utils")
@file:JvmMultifileClass
fun foo(): Boolean {
return true
}
然后我可以从 Java 代码调用Utils.foo()。但是从 Kotlin 代码中我得到了 Unresolved reference 编译器错误。只允许直接使用foo()函数(不带Utils前缀)。
那么在 Kotlin 中声明 utils 类的最佳方法是什么?
【问题讨论】:
-
这个问题出名了,我发了一篇文章here
标签: kotlin