在 Kotlin 中调用函数 findViewById 后尖括号语法是什么意思

What does the angle bracket syntax mean after calling function findViewById in Kotlin

这里是 Kotlin 新手;

我正在学习教程,https://developer.android.com/guide/topics/ui/floating-action-button

我在基本 activity 示例代码中看到 findViewById<FloatingActionButton>(R.id.fab),其中 <FloatingActionButton> 部分让我失望。

 findViewById<FloatingActionButton>(R.id.fab).setOnClickListener { view ->
            Snackbar.make(view, getString(R.string.MySnackBar), Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show()

我很困惑,因为在其他示例代码中,我看到 val rollButton: Button = findViewById(R.id.roll_button)

第一个 findViewById<FloatingActionButton> 是一个界面吗(?)如果是,为什么它需要一个,而第二个是按原样传递给按钮来工作的?

我是不是误解了语法,或者可能漏掉了一个概念?

我确定我遗漏了这个拼图的一部分,但没有看到它。

首先感谢您提供的任何帮助或文档,您可以向我推荐解释它的内容!

findViewById() 需要被告知期望的视图类型。您可以通过以下两种方式之一执行此操作:

  • 通过显式指定变量的类型
val button: Button = findViewById(R.id.button)
  • 通过将类型参数传递给 findViewById()
val button = findViewById<Button>(R.id.button)

你当然可以将两者结合起来,但只需要一个。

就我个人而言,我更喜欢第一个选项,因为它避免了 platform types.

的推断