下课睡觉 2017-07-19 04:45 采纳率: 16.7%
浏览 1092
已采纳

关于java abstract 的问题

我自己定义了一个类继承了RecyclerView.Adapter

//这个是我自定义的类,用来继承RecyclerView.Adapter
 public abstract class TableAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter {

}
//这个是我继承的类
 public abstract static class Adapter<VH extends ViewHolder> {
                    //这个类主要就这两个abstract方法
        public abstract VH onCreateViewHolder(ViewGroup parent, int viewType);

        public abstract void onBindViewHolder(VH holder, int position);

然后我用一个类来继承我自定义的这个Adapter的话:

     class MyAdapter extends TableAdapter<MyAdapter.ViewHolder> {

        @Override
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return null;
        }

        @Override
        public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {

        }

        @Override
        public int getItemCount() {
            return 0;
        }

        class ViewHolder extends RecyclerView.ViewHolder {

            TextView name;
            TextView kill;
            TextView dead;

            public ViewHolder(View itemView) {
                super(itemView);
                name = (TextView) f(R.id.name);
                kill = (TextView) f(R.id.kill);
                dead = (TextView) f(R.id.dead);
            }

            private View f(int id) {
                return findViewById(id);
            }
        }

    }

就会报错:
图片说明

但是如果我直接继承RecyclerView.Adapter,就没问题:

     class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

        @Override
        public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
            return null;
        }

        @Override
        public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {

        }

        @Override
        public int getItemCount() {
            return 0;
        }

        class ViewHolder extends RecyclerView.ViewHolder {

            TextView name;
            TextView kill;
            TextView dead;

            public ViewHolder(View itemView) {
                super(itemView);
                name = (TextView) f(R.id.name);
                kill = (TextView) f(R.id.kill);
                dead = (TextView) f(R.id.dead);
            }

            private View f(int id) {
                return findViewById(id);
            }
        }

    }

请问这哪里有问题吗?

  • 写回答

3条回答

  • Planet1987 2017-07-19 05:18
    关注

    我去 用尖括号被屏蔽了,截图吧:
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置