2017-01-22 33 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