Android @Override Fehler
Heute habe ich endlich meine facebook-Implementierung arbeiten, und als ich begann, es zu implementieren, in meine Anwendung bekomme ich folgenden Fehler über @Override.
Die Methode onComplete(Bundle) - Typ
FBConnectionActivity.LoginDialogListener
überschreiben muss eine Oberklasse-Methode
Wenn ich entfernen Sie die @Override der Fehler behoben ist, aber ich würde gerne verstehen, warum es ist, sich darüber zu beschweren, die in einer Anwendung und nicht die anderen.
Habe ich den folgenden code.
public abstract class FBConnectionActivity extends Activity {
private class LoginDialogListener implements DialogListener {
@Override
public void onComplete(Bundle values) {
Log.d(TAG, "LoginONComplete");
String token = mFacebook.getAccessToken();
long token_expires = mFacebook.getAccessExpires();
Log.d(TAG, "AccessToken: " + token);
Log.d(TAG, "AccessExpires: " + token_expires);
sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(mContext);
sharedPrefs.edit().putLong("access_expires", token_expires)
.commit();
sharedPrefs.edit().putString("access_token", token).commit();
mAsyncRunner.request("me", new IDRequestListener());
}
@Override
public void onFacebookError(FacebookError e) {
Log.d(TAG, "FacebookError: " + e.getMessage());
}
@Override
public void onError(DialogError e) {
Log.d(TAG, "Error: " + e.getMessage());
}
@Override
public void onCancel() {
Log.d(TAG, "OnCancel");
}
}
...
}
Dies ist nur ein Teil des Codes, wo der Fehler Auftritt. Aber das muss nicht jeder Fehler in einer Anwendung und hat Fehler in der anderen.
Nach einigen suchen habe ich gefunden, dass Sie schon etwas ändern zwischen Java 5 und 6. Aber ich nehme an, dass meine Anwendung in eclipse verwenden dieselbe java-Umgebung.
Hoffentlich kann mir jemand erklären, warum das so ist.
Vielen Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Normal, dass die Nachricht würde darauf hinweisen, dass deine Signatur der Methode unterscheidet sich von der Methode, die Sie überschreiben. Dennoch, mit Blick auf die Quelle für DialogListener, Ihre Methoden korrekt Aussehen.
In Java 5 Sie konnten nicht die
@Override
annotation mit Methoden, die eine Schnittstelle implementiert, nur mit aktuellen überschreibungen von Methoden einer super-Klasse. Dies änderte sich in Java 6, so dass Sie können es jetzt in den beiden Kontexten.Wenn Sie kompilieren mit Java 5 (oder Einstellung der compiler
-source
option zu erwarten, dass Java-5-Quelle), die möglicherweise die Ursache für das problem (falls er es sein sollte, beschwert sich über alle 4 Methoden). In diesem Fall ist die einzige Lösung ist das entfernen der Anmerkungen.