动感biubiu 2022-04-18 22:02 采纳率: 46.2%
浏览 61
已结题

Android List<? extends Object> list如何set新的对象?

img


private List<? extends Object> mTestList;
public <T extends Object> void notifyDataSetChanged(int position, T object) {
      mTestList.set(position, object);
}

如图。

  • 写回答

6条回答 默认 最新

  • 军哥孤独枫 2022-04-19 08:51
    关注

    1) 直接给你代码,代码里有详细的注释,copy后即可运行

    
    import java.util.ArrayList;
    import java.util.List;
    /**
     * @author pcj
     * @date 2022/4/19
     * @note
     */
    public class T3 {
    
        //private List<? extends Object> mTestList;
        //在泛型里,?是不确定的类型,所以这里修改为Object
        private List<Object> mTestList;
        public <T extends Object> void notifyDataSetChanged(int position, T object) {
            //做个判断,避免jvm没有初始化
            if (mTestList == null) mTestList = new ArrayList<Object>();
            mTestList.set(position, object);
        }
    
        /**
         * 测试
         * @param args
         */
        public static void main(String[] args) {
            T3 t3 = new T3();
            // 做个判断,可能会有不初始化的情况
            if (t3.mTestList == null) {
                List<Object> temp_mTestList = new ArrayList<Object>();
                t3.mTestList = temp_mTestList;
            }
            // 添加测试数据
            t3.mTestList.add(new Integer(1));
            t3.mTestList.add(new Integer(2));
            System.out.println("修改前:" + t3.mTestList.toString());
            //执行修改
            t3.notifyDataSetChanged(1, 3);
            System.out.println("修改后:" + t3.mTestList.toString());
    
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 赞助了问题酬金5元 4月18日
  • 创建了问题 4月18日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度