2017-01-22 70 views
-1

当我想使用服务器查询和脱机SQLite请求的结果时,我有一个奇怪的错误消息。在Android Studio中android java.util.Array List与java.util.List

错误消息:

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

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

阵列返回的是在两种情况下是相同的:

campolist = {[email protected]} size = 18 
0 = {[email protected] } 
campoid = 23 
delka = 330 
....... 

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

有没有人有线索为什么会出现这种奇怪的行为或一些提示如何可能将util.list转换为Array.list?

+0

为什么不改变你的getAllJamky函数返回正确的类型呢? –

+0

我找到的解决方案非常简单。我只是改变私人ArrayList campojamkyList私人列表 campojamkyList它是工作。 – Peter

回答

3

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

对于一种方法,您最好使用List作为返回,以便您不限制进一步使用的方法(例如LinkedList)。

所以,你需要改变db.getAllJamky(campo)到这样的事情:

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

这正是我正在做的,但问题在于列表的声明。 – Peter