可能重複:
Why do I get 「must override a superclass method」 with @Override?方法......必須覆蓋一個超類方法(最新SDK)
我最近安裝了一個新的Eclipse成立了一個新最新的Android SDK機。當我在幾個地方引入一箇舊項目時,我得到了一個關於@Override的語法錯誤,指出「suchandsuch類型suchandsuch必須重載超類方法」。這些項目是通過刪除@Override(我認爲是不正確的)修復的。
我剛剛用我的新安裝程序創建了我的第一個新項目,最初的未觸動代碼給出了這個讓我困惑的錯誤。
package com.geeksonhugs.whenimclose;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
public class ItemListActivity extends FragmentActivity
implements ItemListFragment.Callbacks {
private boolean mTwoPane;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_item_list);
if (findViewById(R.id.item_detail_container) != null) {
mTwoPane = true;
((ItemListFragment) getSupportFragmentManager()
.findFragmentById(R.id.item_list))
.setActivateOnItemClick(true);
}
}
@Override
public void onItemSelected(String id) {
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putString(ItemDetailFragment.ARG_ITEM_ID, id);
ItemDetailFragment fragment = new ItemDetailFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.replace(R.id.item_detail_container, fragment)
.commit();
} else {
Intent detailIntent = new Intent(this, ItemDetailActivity.class);
detailIntent.putExtra(ItemDetailFragment.ARG_ITEM_ID, id);
startActivity(detailIntent);
}
}
}
編譯器在onCreate之前接受@Override,但給onItemSelected提供了錯誤。有人可以請澄清我發生了什麼事嗎?在以前的版本中,這種語法錯誤又不會發生?
java版本是否一樣?我看到類似的東西從Java 5移動到Java 6. – Thomas
Java版本「1.7.0_04」 –