我一直在尝试使用githubrowsersample重新实现向日葵应用程序示例,因此我一直在尝试进行一些复制和粘贴。但是,对于为什么会出现此错误,我完全感到困惑。此特定代码是完整的复制和粘贴。

我收到的错误是:


错误:DataBoundViewHolder(T)在DataBoundViewHolder中不公开;
不能从外部包访问,其中T是类型变量:T
扩展在类DataBoundViewHolder中声明的ViewDataBinding


而我的代码与this相同,只是这些导入是:

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.view.ViewGroup;

import androidx.annotation.MainThread;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.ViewDataBinding;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.RecyclerView;


我的DataBoundViewHolder代码也可以复制并粘贴:

import androidx.databinding.ViewDataBinding;
import androidx.recyclerview.widget.RecyclerView;

/**
 * A generic ViewHolder that works with a ViewDataBinding
 * @param <T> The type of the ViewDataBinding.
 */

public class DataBoundViewHolder<T extends ViewDataBinding> extends RecyclerView.ViewHolder {
    public final T binding;
    DataBoundViewHolder(T binding) {
        super(binding.getRoot());
        this.binding = binding;
    }
}


谢谢你的时间

最佳答案

使您的班级public

    public class DataBoundViewHolder<T extends ViewDataBinding> extends RecyclerView.ViewHolder {
    ..
}


因为现在我想是package-private

07-27 13:24