Java 如何在不强制转换的情况下指定属性?
例如,我想知道是否可以不强制转换就将属性图像资源分配给Java 如何在不强制转换的情况下指定属性?,java,android,view,casting,imageview,Java,Android,View,Casting,Imageview,例如,我想知道是否可以不强制转换就将属性图像资源分配给ImageView。我知道,如果不使用强制转换,所涉及的类将是View,而不是ImageView。然而,当我将来不再需要它时,创建一个变量并花费一行代码是很烦人的 例如: 正确的方式: ImageView img = (ImageView)findViewById(R.id.img1); img.setImageResource(idImg); 理想方式: findViewById(R.id.img1).setImageResource(i
ImageView
。我知道,如果不使用强制转换,所涉及的类将是View
,而不是ImageView
。然而,当我将来不再需要它时,创建一个变量并花费一行代码是很烦人的
例如:
正确的方式:
ImageView img = (ImageView)findViewById(R.id.img1);
img.setImageResource(idImg);
理想方式:
findViewById(R.id.img1).setImageResource(idImg);
有什么方法可以做到这一点吗?您可以使用括号来处理您铸造的对象,如下所示:
( (ImageView)findViewById(R.id.img1) ).setImageResource(idImg)
不进行强制转换是不可能的,但可以通过这种方式避免变量
((ImageView)findViewById(R.id.img1)).setImageResource(idImg)代码>您也可以使用Class.cast方法:
ImageView.class.cast(findviewbyd(R.id.img1)).setImageResource(idImg)代码>完全正确。这是一个非常简单的提示。谢谢