2012-08-14 57 views
0

SimpleCursorAdapterCursorAdapter的間接子類,如Android documentation中所述。但多態性錯誤?

CursorAdapter cursorAdapter = new SimpleCursorAdapter(bla, bla, bla); 

產生誤差從編譯器:

Type mismatch: cannot convert from SimpleCursorAdapter to CursorAdapter 

然而,這沒有錯誤:

abstract class A { 
} 

class B extends A { 
} 

class C extends B { 
} 

public class Main { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     A c = new C(); 
    } 
} 

是文檔根本就是錯誤的,還是我失去了一些東西?

謝謝你的時間。

+6

請向我們顯示您的進口報表。 Android API中有很多CursorAdapters,你可能導入了錯誤的。 – 2012-08-14 12:36:16

+0

謝謝,就是這樣,導入了錯誤的CursorAdapter。 – m0skit0 2012-08-14 14:50:43

回答

7

我的猜測是你有另一種叫SimpleCursorAdapterCursorAdapter的地方 - 檢查你的導入語句。您應該輸入android.widget.SimpleCursorAdapterandroid.widget.CursorAdapter

+0

我很好奇,如果我可以upvote這個答案。 – 2012-08-14 12:38:07

+0

人們常說「這裏<插入語言功能>無法正常工作」,這是驚人的。如果你以此開始你的問題,你的代碼很可能是問題的根源,而不是語言。 – Matt 2012-08-14 14:19:16

+1

非常感謝Jon的時間,就是這樣。 @Matt:首先,我從來沒有說過*「多態性不工作」*,但是*「文檔是錯誤的,還是我錯過了什麼?」*指的是Android的文檔。我知道錯誤必須是我的,而不是Java的,這就是我在這裏問的原因。其次,如果你沒有發佈一些建設性的東西,那麼放棄無用的(在這種情況下完全錯誤的)批評和閒聊。 – m0skit0 2012-08-14 14:49:06