为什么要对 RecyclerView.ViewHolder 使用静态

Why to use static with RecyclerView.ViewHolder

如果我在 onCreateViewHolder 方法上创建此 class 的新实例,为什么建议对从 RecyclerView.ViewHolder 扩展的 class 使用 static我猜每个项目都使用了该实例:

@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recyclerview,parent,false);
    return new RecyclerViewAdapter.RecyclerViewHolder(view);
}

@Override
public void onBindViewHolder(RecyclerViewHolder holder, int position) {

    String textTop = noticias.get(position).getHora()+ noticias.get(position).getTemperatura();

    holder.textViewTop.setText(textTop);
    holder.textViewBot.setText(noticias.get(position).getTexto());

}


public static class RecyclerViewHolder extends RecyclerView.ViewHolder{

    public TextView textViewTop;
    public TextView textViewBot;

    public RecyclerViewHolder(View view){
        super(view);
        textViewTop = (TextView) view.findViewById(R.id.textView4);
        textViewBot = (TextView) view.findViewById(R.id.textView5);
    }

}

内部 class 包含对外部 class 的引用。因此,这意味着您的 RecyclerView.ViewHolder 的每个实例都将包含对您的 RecyclerView.Adapter.

的引用

将其设为 static 即可避免保留此引用。

Oracle Java Documentation - Nested Classes