如何在 Kotlin 中制作静态方法

How to make static methods in Kotlin

如果我使用 Java 我会做这样的事情:

public class App extends Application {
    private static AppComponent appComponent;

    @Override
    public void onCreate() {
        super.onCreate();
        initDagger();
    }
    private void initDagger(){
        appComponent = DaggerAppComponent.builder()
                .appModule(new AppModule(this))
                .databaseModule(new DatabaseModule(this))
                .networkModule(new NetworkModule())
                .build();
    }

    public static AppComponent getAppComponent() {
        return appComponent;
    }
}

我在 Kotlin 中写道:

class App : Application() {
    private lateinit var appComponent: AppComponent

    override fun onCreate() {
        super.onCreate()
        initDagger()
    }

    private fun initDagger() {
        appComponent = DaggerAppComponent.builder()
            .appModule(AppModule(this))
            .databaseModule(DatabaseModule(this))
            .networkModule(NetworkModule())
            .build()
    }

    companion object{
        fun getAppComponent(): AppComponent {
            return appComponent
        }
    }
}

但是这个伴随对象不起作用,因为 appComponent 在对象中必须是本地的。 我如何制作静态方法,即 returns 一个 AppComponent?

在您的 java 版本中,appComponent 也是静态的。可能希望将 appComponent 移动到 Kotlin 版本中的伴随对象以使其也成为静态的。