Java Android从findViewById创建新对象与铸造findViewById

Java Android从findViewById创建新对象与铸造findViewById,java,android,views,Java,Android,Views,我尝试在java中设置TextView中的文本:首先,我创建了一个如下的对象: //Property info TextView propertyInfo = (TextView) info.findViewById(R.id.info); propertyInfo.setText(getInfo()); //production TextView production = (TextView) info.findViewById(R.id.production); production.se

我尝试在java中设置TextView中的文本:首先,我创建了一个如下的对象:

//Property info
TextView propertyInfo = (TextView) info.findViewById(R.id.info);
propertyInfo.setText(getInfo());

//production
TextView production = (TextView) info.findViewById(R.id.production);
production.setText(getProduction());
后来我尝试了同样的方法,但这次我只是铸造了它,而不是创建一个新对象:

//Property info
((TextView) info.findViewById(R.id.info)).setText(getInfo());

//production
((TextView) info.findViewById(R.id.production)).setText(getProduction());
在我的测试中,我发现当我调用第二个方法时,它使用的内存更少。
我知道为什么,但是,我想知道做这件事的正确方法是什么,或者你是如何做的?

这两种方法基本上是做同一件事的

如果您需要通过设置多个属性或事件来重复使用
TextView
,第一种方法最好避免多次调用
findViewById
。如果您需要保留对
视图的引用,以便稍后用其他方法进行更新,也有必要保留该引用

如果您只使用一次
视图
,我个人更喜欢选项二,因为它更简洁

还值得注意的是,在第一个方法中,您实际上并没有创建新的
对象
。您仅将返回的
视图
对象强制转换为与第二个方法相同的对象