每當我重新往Eclipse導入項目的時候(如果我重新安裝了Eclipse,或者改變了項目的位置),幾乎我所有的重寫方法都不是正確的格式,導致了這個錯誤:“The method ?????????? must override a superclass method”。
因為這個Android項目它可能是值得注意的——不管出於什麼原因,方法參數值總是不能自動填充,所以我不得不手動填充它們。
例如:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
//這些參數有他們正確的名稱
}
});
像這樣在最初的狀態下填充:
list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu arg1, View arg2,
ContextMenuInfo arg3) {
//這些方法的參數沒有自動提供
}
});
奇怪的是,如果我刪除我的代碼,Eclipse會自動重建方法,它使用我之前使用的同樣的參數名稱,所以我真的不知道問題出在哪裡,然後它自動格式化了我的方法。
這變得相當的痛苦,我不得不手動重建我所有重寫的方法。如果有人能解釋為什麼會發生這樣的情況或者是怎麼修改,我將會非常的高興。
可能是我格式化的方法有問題,是在一個參數裡邊的另外一種方法?
Eclipse默認的是java1.5,你得有一個可以實現接口的方法的類(在java1.6中可以被用@Override標注,但是在java1.5中它僅僅是被用於覆蓋超類的一個方法)。
打開你的工程,然後把java編譯器的版本升級到1.6,然後確保你使用JRE1.6來執行你來自eclipse的程序。