kotlin中class类中如何调用静态常量
public class App extends Application {

    private static Application app;

    @Override
    public void onCreate() {
        super.onCreate();
        D.init(this);
        app = this;
    }
    public static Application get() {
        return app;
    }

}

安卓:在其他类中可以直接使用App.get()来获取Application对象。

但是在kotlin中 不知道如何写才能调用

class App : Application() {

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

    companion object {
        private val app: App? = null
        fun get(): App? {
            return app
        }
    }

}

上面的代码是studio自动将java转成kotlin。可以使用App.get() ,但是很明显一定是null
这里App的类不能定义成object 或者是 companion object。

请问如何写才能使得如java一样调用方便

1个回答

已经解决了。

 /*伴生对象中方法和变量都是静态的*/
    companion object {
        private var app: App? = null
        private fun setApp(app: App) {
            this.app = app
        }

        @JvmStatic
        fun get(): App? {
            return app
        }
    }

然后在oncreat中调用 setApp(this)
这样注入了app之后。外部就可以使用App.get()来获取到App的实例了。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问