有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在不强制转换的情况下分配属性?

例如,我想知道是否可以不强制转换就将属性图像资源分配给ImageView。我知道,如果没有强制转换,所涉及的类将是View,而不是ImageView。然而,当我将来不再需要它时,创建一个变量并花费一行代码是很烦人的

例如:

正确的方式:

ImageView img = (ImageView)findViewById(R.id.img1);
img.setImageResource(idImg);

理想方式:

findViewById(R.id.img1).setImageResource(idImg);

有没有办法做到这一点


共 (3) 个答案

  1. # 1 楼答案

    不进行强制转换是不可能的,但可以通过这种方式避免变量

    ((ImageView)findViewById(R.id.img1)).setImageResource(idImg);

  2. # 2 楼答案

    您可以使用括号处理已浇铸的对象,如下所示:

    ( (ImageView)findViewById(R.id.img1) ).setImageResource(idImg)
    
  3. # 3 楼答案

    您还可以使用类。铸造方法:

    ImageView.class.cast(findViewById(R.id.img1)).setImageResource(idImg);