我正在编写一个 Kotlin 应用程序,我一直在研究这种语言,我注意到要创建一个变量,您必须明确定义它是否可以为空,然后使用 ? 操作员。
现在,我的问题。有时我必须定义一个全局变量(在这种情况下为 Fragment),所以我需要将其设为 null,因为我还不能初始化它
在java中我没有这个问题,因为在声明它之后我做的第一件事就是像这样在onCreate()中初始化
TurboFragment fragment = null;
@Override
public void onCreate(Bundle savedInstanceState) {
...
fragment = adapter.getCurrentFragment();
}
然后我可以在没有语法问题的情况下使用它在 Kotlin 中是不同的,因为我必须这样做
private var fragment: TurboFragment? = null
override fun onCreate(savedInstanceState: Bundle?) {
...
fragment = adapter!!.currentFragment
fragment!!.foo()
var x = fragment!!.sampleInt
}
现在,每次我调用片段实例时,我都必须使用 null-safe !! 操作员。这使我的代码一团糟,因为对于每一行我至少有一个!运算符,它是否如此频繁看起来真的很不清楚,特别是如果你有 5 个或更多这样的变量。有没有办法简化代码或者这种语言的本质是这样的?