Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不强制转换的情况下指定属性?_Java_Android_View_Casting_Imageview - Fatal编程技术网

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)

完全正确。这是一个非常简单的提示。谢谢