Lorsque je définis une méthode pour renvoyer une classe de type, ne devrais-je pas pouvoir remplacer la méthode par un type qui étend Base? Prenons l'exemple suivant:Méthodes génériques retournant une collection donnant un avertissement de type Diffusion non sécurisée
MultiEntryModel.java (classe parente)
protected abstract <T extends Model> List<T> getDataList();
ProgramData.java
public class ProgramData extends MultiEntryModel {
...
@Override
protected List<Program> getDataList() {
return programs;
}
}
Program.java
public class Program extends Model {
...
}
Je reçois un type dangereux lancer un avertissement dans Programs.java, même si je retourne une liste contenant des objets de type Program, qui étend le Mod el class, comme indiqué par la signature de la méthode dans la classe de base <T extends Model>
. Pourquoi?
Publier une complète exemple minimal reproduire le problème, ainsi que le message d'erreur exacte et complète. Il n'y a aucune distribution dans le code que vous avez posté. –
Il n'y a pas de casting. L'avertissement apparaît dans Programs.java au point où la méthode est surchargée. – user1452030