【问题标题】:Original array size and list.size returns different values原始数组大小和 list.size 返回不同的值
【发布时间】:2017-09-21 18:45:06
【问题描述】:

我正在创建一个 RecyclerView,其中适配器从我在 assets 文件夹中创建的 JSON 文件中获取项目。我正在使用 GSON 将其转换为对象列表。由于 Nullpointer Exception 导致应用程序在运行时崩溃。在调试时我看到数组大小与原始元素计数不匹配。有人可以分享他们对此的看法吗?

我必须在 getItemCount() 中添加 list.size-1 而不是仅仅添加 list.size 才能让我的应用正常工作。

在页面底部的屏幕截图中,数组大小为 8,打开的数组仅显示 7 个元素,这永远不会发生。

【问题讨论】:

  • 试图了解为什么您认为截屏比复制/粘贴更简单...
  • @anomeric 我无法理解 actionEvents 的大小是如何变成 8 的。这就是截图的原因。据我所知,这根本与我的代码无关。大小应该是 7 数组中只有 7 个元素

标签: android android-studio android-recyclerview


【解决方案1】:

好的,这是因为在我尝试解析的 JSON 数组中的最后一个对象之后有一个额外的逗号。由于逗号将其转换为对象列表时,GSON 认为还有一个对象即将到来。删除了逗号,一切正常。在调试窗口中查看数组没有任何意义,让应用程序正常工作,但仍然不明白它是如何工作的为 7 元素数组返回 8。

Perception's Answer 发现,size 返回一个实例变量。必须在 GSON 源中搜索才能知道它是如何解析的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-11
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2015-01-18
    • 1970-01-01
    • 2019-10-13
    相关资源
    最近更新 更多