gpt4 book ai didi

java - ViewHolder 类中的最终属性?

转载 作者:行者123 更新时间:2023-11-30 00:17:17 26 4
gpt4 key购买 nike

我刚刚生成了一个 Master/Detail Flow 项目,我发现了一些奇怪的东西:在 DriverListActivity.java 中,名为 ViewHolder 的子类具有 final 属性。由于ViewHolder里面的数据很可能要被替换,为什么属性设置为 final??

public class ViewHolder extends RecyclerView.ViewHolder {
public final View mView; //???????
public final TextView mIdView; //???????
public final TextView mContentView; //???????
public DummyContent.DummyItem mItem;

//CONSTRUCTOR
public ViewHolder(View view) {
super(view);
mView = view;
mIdView = (TextView) view.findViewById(R.id.id);
mContentView = (TextView) view.findViewById(R.id.content);
}

@Override
public String toString() {
return super.toString() + " '" + mContentView.getText() + "'";
}
}

最佳答案

Final 并不意味着对象不能被改变。 Final 意味着引用本身不能被替换。您仍然可以在最终引用上调用 mIdView.setText()。

把它想象成 C 语言。有一个指针(一个引用)和一个值。 Final 意味着指针是不变的,而不是它指向的值。并且 ViewHolder 一旦创建就不会更改其中 View 的值 - 这就是我们使用 ViewHolder 模式的原因 - 这些引用是常量。

关于java - ViewHolder 类中的最终属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47016336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com