java.lang.ClassCastException: infrastructure cannot be cast to terrain
at p2_assign_version2.main(p2_assign_version2.java:98)
C'est l'erreur qui est constamment imprimée lorsque j'essaie de créer mon fichier. En raison de cette erreur je ne suis pas en mesure d'imprimer toutes mes données dans mon terrain.txtEnregistrement d'un fichier avec erreur de conversion
Est-ce que quelqu'un ici sait comment je peux corriger l'erreur?
et au-dessous est l'ensemble de code qui est à l'origine de l'erreur apparaisse
File terrain=new File("terrain.txt"); //To create file
boolean tExist=terrain.exists();
terrain[]terrains = new terrain[100];
if(!tExist)
{
try
{
FileOutputStream fos = new FileOutputStream("terrain.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
terrains[0] = new terrain("Grass", true);
oos.writeObject(terrains[0]);
terrains[1] = new terrain("Water", false);
oos.writeObject(terrains[1]);
terrains[2] = new terrain("Pavement", false);
oos.writeObject(terrains[2]);
terrains[3] = new terrain("Road", false);
oos.writeObject(terrains[4]);
terrains[5] = new terrain("Drainage", false);
oos.writeObject(terrains[5]);
terrains[6] = new terrain("Hill", false);
oos.writeObject(terrains[6]);
terrains[7] = new terrain("Bushes", false);
oos.writeObject(terrains[7]);
terrains[8] = new terrain("Tree", false);
oos.writeObject(terrains[8]);
oos.flush();
oos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
else
{
try
{
FileInputStream fis=new FileInputStream("terrain.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
for (p=0; p<terrains.length; p++)
{
if(terrains[p] == null)
{
//this is the line that causes error to be printed//
terrains[p] = (terrain) ois.readObject();
}
}
ois.close();
}
catch(EOFException eof)
{
}
catch(FileNotFoundException fnfe)
{
System.out.println("There seems to be a problem reading from the file");
}
catch(Exception e)
{
e.printStackTrace();
}
}
1) Pour une meilleure aide plus rapidement, postez un [SSCCE] (http://sscce.org/). 2) Changer le code de la forme 'catch (Exception e) {..' en' catch (Exception e) {e.printStackTrace(); // très instructif! ..' –
Apparemment, 'terrain' ne dérive pas de' infrastructure'. –
'terrains [3] = nouveau terrain (" Route ", faux); oos.writeObject (terrains [4]); Avez-vous oublié quelque chose ici? – johnchen902