J'expérimente avec Eclipse null annotations et j'obtiens une erreur. J'ai une classe A (exemple ci-dessous) dont je n'ai pas la source. Je veux l'étendre pour une classe qui est annotée par @NonNullByDefault
. Cela génère une erreur car la contrainte @NonNull
ne correspond pas aux paramètres non contraints (nullable as inherited) de la classe parente. Eclipse recommande d'ajouter @Nullable
mais cela ne fait pas disparaître l'erreur.Puis-je ne pas mélanger @NonNullByDefault avec des classes héritées qui n'ont pas de contrainte d'annotation nulle?
Ai-je fait quelque chose de mal?
Classe A:
public class A {
public void SomeMethod(
String[] a)
{
}
}
Classe B:
@NonNullByDefault
public class B extends A {
@Override
public void SomeMethod(
@Nullable String[] a)
{
}
}
L'erreur je reçois est:
redéfinition illégale de paramètre a, méthode héritée de A ne pas constrain ce paramètre
en double de https://bugs.eclipse.org/513209, qui est dans le besoin d'une réponse avant de pouvoir décider si elle est un bug ou fonctionne comme prévu . –
J'ai écrit la question ici avant de décider que je pensais que c'était un bug. Il s'avère que c'est un bug avec la fonction QuickFix d'Eclipse qui place le '@ Nullable' au mauvais endroit. Je vais écrire une réponse appropriée à ceci maintenant. – Zhro