findViewById 为什么不需要强转?

为什么以前用 Eclipse findViewById时候需要强转,而现在用Android studio 不需要强转了

因为在高版本的sdk中加入了泛型,所以不用强转

因为android API 26后findViewById使用了泛型,不需要你显示强转了,其实本质还是强转了,你可以看看编译后的代码,一样的。如果类型对不上,编译不会报错,运行时就会报类型转换错误。

  • 请看👉 :android 自动初始化控件 不用注解不用findViewByid
  • 除此之外, 这篇博客: Android Studio编译失败:对findViewById的引用不明确中的 关于我 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 厦门大学计算机专业 | 前华为工程师
    Java | 安卓 | 前端 | 小程序 | 鸿蒙
    公众号:蓝不蓝编程

  • 以下回答由chatgpt基于相关博客总结生成:

    findViewById是一个Android开发中常用的方法,用于在布局文件中查找指定id的控件并返回该控件的实例对象。在以前的版本中,findViewById方法返回的是View类型的对象,如果需要使用其它类型的控件,则需要进行强制类型转换。但是在Android Studio中,findViewById方法已经实现了泛型的封装,可以通过定义泛型类型自动完成类型转换,因此不再需要进行强制类型转换。

    最佳实践建议: 1. 在使用findViewById方法时,尽量将对控件类型的定义放在前面,这样代码更加整洁,易于理解。 2. 在使用泛型类型访问控件时,可以将变量定义为final类型,这样可以避免意外赋值,保证变量的一致性。 3. 在使用findViewById方法时,应该避免频繁的调用,可以将需要使用的控件实例保存在变量中,以提高代码的运行效率。

    综上所述,Android Studio对findViewById方法的优化使使用该方法更加方便、简洁、高效,是Android开发人员不可或缺的工具之一。