实用程序的内部对象 类?
Internal Objects for Utility Classes?
我使用 IntelliJ 的 Kotlin 到 Java 转换工具将一个 Java 实用程序 Class(所有 class 方法都是静态的,无法实例化)转换为科特林
IntelliJ 创建了以下形式的内部对象:
internal object MyObject {
const val FIELD1: String = "constant string"
fun myStaticFn(): String {
return "hi"
}
}
这与使用伴生对象制作 class 有何不同?
我同意 JB Nizet 所说的避免创建不必要的 class,还有一个好处是使用 internal
,这意味着您不会暴露该实用程序 class 以防您的项目被用作其他项目的依赖项。当然,在某些情况下,您希望拥有一个包含一些有用的实用方法的库,在这种情况下,您可以删除 internal
修饰符,但在许多其他情况下,最好只提供 nice 和 clean API , 同时隐藏您正在使用的实用方法。
我使用 IntelliJ 的 Kotlin 到 Java 转换工具将一个 Java 实用程序 Class(所有 class 方法都是静态的,无法实例化)转换为科特林
IntelliJ 创建了以下形式的内部对象:
internal object MyObject {
const val FIELD1: String = "constant string"
fun myStaticFn(): String {
return "hi"
}
}
这与使用伴生对象制作 class 有何不同?
我同意 JB Nizet 所说的避免创建不必要的 class,还有一个好处是使用 internal
,这意味着您不会暴露该实用程序 class 以防您的项目被用作其他项目的依赖项。当然,在某些情况下,您希望拥有一个包含一些有用的实用方法的库,在这种情况下,您可以删除 internal
修饰符,但在许多其他情况下,最好只提供 nice 和 clean API , 同时隐藏您正在使用的实用方法。