0
  • 其实我猜到你想做什么,就是rv更新某个位置的数据。

    只需要提供位置,然后根据list的位置更新对应数据,再刷新adapter。

    通常你上面的代码写在adapter的基类比较多,也就是通过适配器的实现类,限定某个数据类型。比如MyAdapter<User>,必须限定好,你的list,自然就是list<T>了,你上面的代码就可以正常的set了。

    1139423796017500160  评论     打赏       工头断点
    • <? extends E> 是 Upper Bound(上限) 的通配符,用来限制元素的类型的上限

      比如List<? extends Fruit> fruits;  

      那么集合中的元素类型上限就是Fruit,所以我们赋值只能是Fruit或者它的子类,如下:

      fruits = new ArrayList<Fruit>();
      fruits = new ArrayList<Apple>();
      

      当你的类型是Fruit的父类时,比如Object,就会编译报错

      fruits = new ArrayList<Object>();
      



      通过上面的内容,我们一般会认为插入数据使用Fruit或者它的子类就理所当然的正确了,但并不是这样。

      因为我们只是指定了它的上限是Fruit,但具体是什么类型我们是不知道的,你可以是Apple、Banana或者其他的类型,为了安全,编译器会报错,防止类型不兼容的情况出现,除了null,因为它可以表示任何类型。

      1365268693742907392  评论     打赏       CrTnil
      • yadeep  回复 @CrTnil
        ?????
        yadeep 2022-04-18 18:10   回复 1477668428276826113
      • CrTnil  回复 @yadeep
        简单来说,按你现在这种方式set不了
        CrTnil 2022-04-18 18:27   回复 1365268693742907392
    相关问题
    kissmyass · 安卓
    2019-12-11 04:41 713 2
    珂珂范范 · 安卓
    2019-12-19 00:59 559 2
    2020-01-31 00:31 693 2
    谁都不许动我的砖 · 安卓 / xml
    2020-02-05 19:16 1184 2
    谁都不许动我的砖 · 安卓
    2020-02-06 06:24 764 2
    珂珂范范 · 安卓模拟器
    2020-02-21 11:10 842 2
    珂珂范范 · 安卓
    2020-02-29 23:50 429 2
    mercenary · 安卓
    2020-03-22 02:34 358 2
    哦豁! · 安卓报错
    2020-03-22 23:17 684 4
    Pancica · 安卓
    2020-03-23 02:13 520 2
    Pancica · 安卓
    2020-03-30 08:22 452 2
    kuro · 安卓
    2020-04-04 00:17 417 4