【问题标题】:android java.util.Array List versus java.util.List [duplicate]android java.util.Arraylist vs java.util.List [重复]
【发布时间】:2017-06-07 10:13:33
【问题描述】:

当我想使用服务器查询和离线 SQLite 请求的结果时,我收到一条奇怪的错误消息。

Android Studio 中的错误消息:

Incompatible types:
Required: java.util.Array.list
Found: java.util.List

ArrayList 已声明:private ArrayList<Jamky> campojamkyList; 并分配:campojamkyList = new ArrayList<>();

返回的数组在两种情况下都是一样的:

campolist = {ArrayList@1235} size = 18
0 = {Jamky@1235 }
 campoid = 23
 delka = 330
.......

当我想分配 SqlLite 查询的结果时 campolist = db.getAllJamky(campo); 我收到错误消息。

有没有人知道为什么会发生这种奇怪的行为,或者有一些提示如何将 util.list 转换为 Array.list?

【问题讨论】:

  • 为什么不改变你的 getAllJamky 函数来返回正确的类型呢?
  • 我找到的解决方案非常简单。我刚刚将 private ArrayList campojamkyList 更改为 private List campojamkyList 并且它正在工作。

标签: java android sqlite arraylist


【解决方案1】:

因为List 不是一个类,它是一个接口。 ArrayList 实现 List。

对于方法,您最好使用 List 作为返回,这样您就不会限制该方法以供进一步使用(例如 LinkedList)。

因此,您需要将db.getAllJamky(campo) 更改为如下内容:

public List<YourObject> getAllJamky(YourObject yourObject) {
  List<YourObject> list = new ArrayList<>();
  // the implementation
  ...
  return list;
}

【讨论】:

  • 这正是我正在做的,但问题是列表的声明。
猜你喜欢
  • 2019-12-26
  • 1970-01-01
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2023-03-12
  • 2016-09-06
相关资源
最近更新 更多