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
    相关问题
    _empty · Android
    2019-10-20 23:51 638 2
    application · Android
    2019-11-05 00:26 796 2
    三流废物 · android / 小白
    2019-11-22 00:35 1076 5
    豪豪好嘛 · Android / GPS
    2019-11-26 20:15 900 5
    Jian · android
    2019-11-28 01:51 626 2
    2019-12-01 01:01 715 2
    小陈学编程 · Android
    2019-12-01 19:08 643 2
    fkinggod · Android
    2019-12-08 09:19 668 5
    fkinggod · Android
    2019-12-08 20:47 634 2
    kissmyass · Android
    2019-12-09 07:08 542 2
    独一无二的名zi · Android
    2019-12-30 06:48 422 2