Salut à toutes et à tous
En pleine création d'un petit logiciel de gestion de comptes, je suis confronté à un problème qui me parait un peu stupide... Soit je m'y prends mal, soit java peut être amélioré.
Situons le contexte:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 package org.aspyct.mpc.accounting; public interface Movement { ... }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 package org.aspyct.mpc.accounting; class MovementImpl implements Movement { ... }Alors... est-ce que je m'y prends comme un pied avec mes interfaces et mes listes, ou est-ce que vous trouvez aussi que c'est un comportement bizarre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 package org.aspyct.mpc.accounting; class AccountingImpl implements Accounting { private List<MovementImpl> movements; public Iterator<Movement> movements() { // La ligne suivante plante lamentablement, me disant "Incompatible types" return Collections.unmodifiableList(movements).iterator(); // Pourtant, la suivante fonctionne, alors que c'est, en soi, la même histoire return new ArrayList<Movement>(movements).iterator(); } }
Je conçois bien que la première ligne retournerait quelque chose du type Iterator<MovementImpl>, mais puisque de MovementImpl à Movement on effectue une généralisation, ça devrait passer quand même...
Partager