Java: Integer obj ne pouvez pas lancer de Comparable

Je vais avoir des problèmes en essayant de passer d'un nombre Entier d'objet à partir d'un pilote de classe en tant qu'argument à la fonction de SortedArray Générique classe que j'ai créée. De mon pilote de classe, je convertir l'utilisateur int entrée dans un objet Integer être coulé sur un Comparable de mon SortedArray classe.

- Je continuer à recevoir le message d'erreur "Exception in thread "main" java.lang.ClassCastException: java.lang.Entier ne peut pas être jeté à l'Comparables". J'ai pris un coup d'oeil à certains de mes camarades de classe, codes source, seulement pour trouver que peu de différence dans la définition des arguments/paramètres pourtant, ils ont leur code fonctionne très bien. J'ai cherché pendant des heures à essayer de trouver quelle est l'erreur que j'ai fait et je n'ai toujours pas pourquoi mon Entier objet ne peut pas être jeté à l'Comparables.

Voici un peu de mon SortedArray Classe

public class SortedArray implements Comparable{
public int size;
public int increment;
public int top;
Comparable[] a = new Comparable [size];
public SortedArray(int initialSize, int incrementAmount)
{
top = -1;
size = initialSize;
increment = incrementAmount;
}
public int appropriatePosition(Comparable value)
{
int hold = 0;
if(top == -1)
{
return 0;
}
else
{    
for(int i = 0; i <= top; i++)
{
if(a[i].compareTo(value) > 0)
{
hold = i;
break;
}
}
}
return hold;
}
public void insert(Comparable value) //The function that my driver class needs to access
{
//Shifting numbers to the top
if(full() == true)
{
Comparable[] tempArray = new Comparable[top + increment];
for(int i= 0; i< size; i++)
{
tempArray[i]= a[i];
a  = tempArray;
}
size = top + increment;
}
if(a[appropriatePosition(value) + 1] != null)
{
for(int i = top; i < appropriatePosition(value); i--)
{
a[i + 1] = a[i];
}
}
a[appropriatePosition(value) + 1]= value;
}

Voici le code de mon pilote de classe qui transmet Objet Integer insertObj comme un argument pour SortedArray de la fonction d'insertion.

public class IntDriver  {
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
//Creating variables
int data;
boolean check = false;
int choice;
int size = 5;
int increment = 3;
SortedArray b = new SortedArray(size, increment);
//Creating Menu
while(check == false)
{
System.out.println("Please choose through options 1-6.");
System.out.println("1. Insert\n2. Delete\n3. Clear\n4. Smallest\n5. Largest\n6. Exit");
choice = keyboard.nextInt();
switch(choice)
{
case 1:
System.out.println("Type the int data to store in array location.");
data = keyboard.nextInt();
Integer insertObj = new Integer(data);
b.insert(insertObj);//Here's where I lay "insertObj" as an argument for the SortedArray function.
System.out.println("The value " + data + " is inserted");
break;
Vous pourriez essayer d'ajouter votre plein trace de pile d'exception ici.
Dans le code que vous avez posté, il n'y a rien d'être coulé. Pourriez-vous peut-être poster une SSCCE qui montre le comportement que vous décrivez? sscce.org

OriginalL'auteur TLM | 2010-01-21