Bonjour à tous,
Je suis en train de nettoyer le code d'une application développée initialement en Java 1.4 et je me retrouve avec un problème que certains on sans doute déjà rencontré.
Pourquoi n'est-il pas possible de déclarer : "List<A> liste = new ArrayList<B>()" avec B implémentant A ?
Merci d'avance pour toute information.
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import java.util.ArrayList; import java.util.List; public class TestList { public static void main(String[] args) { A monA = new B() ; // Ok List<A> liste = new ArrayList<B>() ; // Erreur à la compilation : Type mistmach : cannot convert ArrayList<B> to List<A> } static interface A { // Nop } static class B implements A { // Nop } }
Partager