java如何在不强制转换的情况下分配属性?
例如,我想知道是否可以不强制转换就将属性图像资源分配给ImageView
。我知道,如果没有强制转换,所涉及的类将是View
,而不是ImageView
。然而,当我将来不再需要它时,创建一个变量并花费一行代码是很烦人的
例如:
正确的方式:
ImageView img = (ImageView)findViewById(R.id.img1);
img.setImageResource(idImg);
理想方式:
findViewById(R.id.img1).setImageResource(idImg);
有没有办法做到这一点
# 1 楼答案
不进行强制转换是不可能的,但可以通过这种方式避免变量
((ImageView)findViewById(R.id.img1)).setImageResource(idImg);
# 2 楼答案
您可以使用括号处理已浇铸的对象,如下所示:
# 3 楼答案
您还可以使用类。铸造方法:
ImageView.class.cast(findViewById(R.id.img1)).setImageResource(idImg);