Est-il possible (ou même conseillé) de lancer l'élément extrait d'une instruction for each dans l'instruction elle-même? Je sais que chaque élément de la liste sera de type <SubType>
.Elément cast en Java pour chaque instruction
i.e. .:
List<BaseType> list = DAO.getList();
for(<SubType> element : list){
// Cannot convert from element type <BaseType> to <SubType>
...
}
plutôt que:
List <BaseType> list = DAO.getList();
for(<BaseType> el : list){
<SubType> element = (<SubType>)el;
...
}
+1 pour indiquer de manière si éloquente le mécanisme de contrat auquel les interfaces doivent adhérer. – aperkins
Malheureusement, le code DAO n'est pas le nôtre. Cependant, les flux dans la source de données sont. Nous avons sous-classé (la seule de ces sous-classes) puisque nous voulions des fonctionnalités supplémentaires dans la classe. Puisque nous contrôlons l'entrée et que nous y mettons uniquement des objets , je pense que je peux être assez certain que l'objet récupéré sera effectivement l'un des . Si nous contrôlions tout le code, vous seriez 100% correct. –
@Carl - Cela vaut-il la peine d'envelopper le DAO, et de fournir une interface * différente * qui fait ce que vous voulez. Sinon, vous devrez convertir tout le contenu de votre base de code (potentiellement - je me rends compte que je fais des hypothèses sur la façon dont cette distribution est largement répandue) –