下课睡觉 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条)

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站