为什么 binding.myTextView returns 一个 TextView?而不是 TextView

Why binding.myTextView returns a TextView? and not TextView

在我称为 activity_main.xml 的布局中,我有两个 TextView。我可以使用变量

从我的 MainActivity 访问它
binding = ActivityMainBinding.inflate(layoutInflater)

这样:

binding.textView1
binding.textView2

在我的代码中 binding.textView1 returns 一个对象 TextView 但第二个 returns 一个对象 TextView?.

这迫使我使用 ?. 运算符访问第二个 TextView

binding.textView2?.text = "HelloWorld"

因为使用 . 运算符导致错误

Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type TextView?

所以问题是有没有一种方法可以在我的布局中定义一个不可为空的视图? 属性 相同的两个对象怎么可能有不同的行为?

该对象可以为 null,因为它不存在于所有 XML 布局中,因此在某些布局中它为 null。