正在边看视频教程边敲代码,发现个问题。
下面三个类型转换,有什么区别?教程及网上搜到的,都是第2种办法,我在Android Studio中试过了,三种方式都能正常运行。imageView = findViewById(R.id.iv);
imageView = (ImageView) findViewById(R.id.iv);
imageView = this.<ImageView>findViewById(R.id.iv);第一种方式,不需要类型转换了?
第三种方式,“ this.<ImageView>”又是什么?这段是在AS中根据提示生成的。

解决方案 »

  1.   

    第一种方式的原因https://blog.csdn.net/tydqcjj/article/details/78763937
      

  2.   

    第一种方式是as3.x版本中用的不需要强转,源码有处理
    第二中方式是as2.x版本中用的必须强转,源码没有处理
    第三种是泛型的方式,本类<>.xxx() 性质都是一样的没什么区别,那个顺手用哪个
      

  3.   

    非常感谢!
    前两天就发贴问了一下再在大家常用的是ADT还是AS,版本是多少。因为刚开始学,就想一步到位。敲代码时也能好好习惯一下,尤其是快捷键,视频中是用的ADT,快捷键和AS有些不一样。夸张的是,有的快捷键居然和QQ冲突。
      

  4.   

    非常感谢!
    前两天就发贴问了一下再在大家常用的是ADT还是AS,版本是多少。因为刚开始学,就想一步到位。敲代码时也能好好习惯一下,尤其是快捷键,视频中是用的ADT,快捷键和AS有些不一样。夸张的是,有的快捷键居然和QQ冲突。现在大部分开发用的都是as,快捷键的话可以自己到settings中设置自己熟悉的按键,这个可以百度.
    新手的话不建议刚开始就使用快捷键来敲代码,因为需要先要熟练其代码,然后再使用快捷键来提高开发效率
      

  5.   

    非常感谢!
    前两天就发贴问了一下再在大家常用的是ADT还是AS,版本是多少。因为刚开始学,就想一步到位。敲代码时也能好好习惯一下,尤其是快捷键,视频中是用的ADT,快捷键和AS有些不一样。夸张的是,有的快捷键居然和QQ冲突。现在大部分开发用的都是as,快捷键的话可以自己到settings中设置自己熟悉的按键,这个可以百度.
    新手的话不建议刚开始就使用快捷键来敲代码,因为需要先要熟练其代码,然后再使用快捷键来提高开发效率
      

  6.   

    第一种 你用findViewById(R.id.iv)  按Ctrl alt +V  得到的是View  view=findViewById(R.id.iv);  因为官方默认在方法的返回值写了约束<View>.
    第二种(ImageView)findViewById(R.id.iv)  按Ctrl alt +V  得到的是ImageView view=(ImageView)findViewById(R.id.iv);  得到这个是因为你手动给了(ImageView)  约束了返回类型.
    第三种this.<ImageView>findViewById(R.id.iv) ; 和第二种差不多 也是<ImageView> 和 (ImageView)  是类似的功能.
    可以去了解一下Java 的 泛型.<T>   <?>