Bonjour,

j'ai un problème de cast et je ne sais pas comment le résoudre, le problème se déclenche quand j'essai d'instancier un objet, voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class MaxPriorityQueue<Key extends Comparable<Key>>{
 
    private Key[] list;
    private int nbrItems = 0;
 
 
    public MaxPriorityQueue(){
        list =  (Key[]) new Object[2]; 
    }
}
la ligne d'instanciation d'un objet de cette classe :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
MaxPriorityQueue<String> mPQ = new MaxPriorityQueue<String>();
Le problème se situe ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
list =  (Key[]) new Object[2];
Et voici l'erreur que j'obtient :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
    at MaxPriorityQueue.<init>(MaxPriorityQueue.java:12)
    at launcher.main(launcher.java:14)
Merci d'avance