小编Jac*_*nes的帖子

是否可以将 DI 与 androidx.navigation.NavController 一起使用

所以,这个标题反映了这个问题。要获取导航控制器 ( androidx.navigation.NavController)上的链接,通常我们使用以下代码:

NavController navController = Navigation.findNavController(this, R.id.nav_host_frag);
Run Code Online (Sandbox Code Playgroud)

是否可以使用框架注入NavController Dagger2?(findNavController需要活动或视图参考)也许这是一个愚蠢的问题,没有人会注入androidx.navigation.NavController,但我还是决定问这个问题以确保我的假设。提前致谢

android dependency-injection dagger-2 android-architecture-components androidx

5
推荐指数
0
解决办法
2259
查看次数

只有在Kotlin为null时才在Kotlin中实例化变量?

可以说,我有一个变量:

var myObject : MyObject? = null

它应该在某个地方清除:

myObject?.clear
myObject = null
Run Code Online (Sandbox Code Playgroud)

并且在使用地点应该绝对不可为空.在Java中,我可以这样做:

private MyObject getMyObject(){
  if(myObject == null) {
    myObject = new MyObject()
  }
  return myObject
}
Run Code Online (Sandbox Code Playgroud)

问题:如何在Kotlin实现这一目标?

我找到了使用elvis-operator的建议:

private fun getMyObject() = myObject ?: MyObject()
Run Code Online (Sandbox Code Playgroud)

但是这并没有MyObjectmyObject变量分配结果(如果要创建新实例).请帮我解决和解释.谢谢你

java getter nullable backing-field kotlin

3
推荐指数
2
解决办法
322
查看次数