Ich experimentiere mit Eclipse null annotations und bekomme einen Fehler. Ich habe eine Klasse A (Beispiel unten), von der ich die Quelle nicht habe. Ich möchte es für eine Klasse erweitern, die von @NonNullByDefault
kommentiert wird. Dies führt zu einem Fehler, da die @NonNull
-Einschränkung nicht mit den Parametern der Elternklasse übereinstimmt, deren Parameter nicht eingeschränkt sind (Nullable als geerbt).Kann ich @NonNullByDefault nicht mit geerbten Klassen mischen, die keine Null-Annotationsbeschränkung haben?
Eclipse empfiehlt das Hinzufügen @Nullable
, aber das macht den Fehler nicht weg.
Mache ich etwas falsch?
Klasse A:
public class A {
public void SomeMethod(
String[] a)
{
}
}
Klasse B:
@NonNullByDefault
public class B extends A {
@Override
public void SomeMethod(
@Nullable String[] a)
{
}
}
Der Fehler I erhalten ist:
Illegal Neudefinition der Parameter a, geerbte Methode von A nicht constrain Dieser Parameter
Duplizieren von https://bugs.eclipse.org/513209, die in der Notwendigkeit einer Antwort, bevor wir entscheiden können, ob es ein Fehler ist oder arbeitet als entworfen . –
Ich habe die Frage hier geschrieben, bevor ich entschieden habe, dass ich es für einen Fehler hielt. Es stellt sich heraus, dass es sich um einen Fehler bei der QuickFix-Funktion von Eclipse handelt, bei dem die "@ Nullable" an der falschen Stelle platziert wurde. Ich werde jetzt eine richtige Antwort auf diese Frage schreiben. – Zhro