如何在 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 版本中的伴随对象以使其也成为静态的。
如果我使用 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 版本中的伴随对象以使其也成为静态的。