Intellij idea 实用程序类的内部对象?

Intellij idea 实用程序类的内部对象?,intellij-idea,kotlin,companion-object,Intellij Idea,Kotlin,Companion Object,我使用IntelliJ的Kotlin到Java转换工具将Java实用程序类(所有类方法都是静态的,不能实例化)转换为Kotlin IntelliJ创建了以下表单的内部对象: internal object MyObject { const val FIELD1: String = "constant string" fun myStaticFn(): String { return "hi" } } 这与使用伴生对象创建类有何不同?我同意JB Ni

我使用IntelliJ的Kotlin到Java转换工具将Java实用程序类(所有类方法都是静态的,不能实例化)转换为Kotlin

IntelliJ创建了以下表单的内部对象:

internal object MyObject {  
    const val FIELD1: String = "constant string"

    fun myStaticFn(): String {
        return "hi"
    }
}

这与使用伴生对象创建类有何不同?

我同意JB Nizet的说法,即避免创建不必要的类,还有一个好处是使用
内部
,这意味着您不会公开该实用程序类,以防您的项目被用作其他项目的依赖项。当然,在某些情况下,您希望有一个包含一些有用实用程序方法的库,在这种情况下,您可以删除
内部
修饰符,但在许多其他情况下,最好只提供漂亮干净的API,同时隐藏您正在使用的实用程序方法。

,它不会创建带有伴生对象的类所具有的不必要的类。