Bonjour ou bonsoir,
Je suis nouveau et débutant, et j'ai un projet à faire en java, mais je bloque un peu sur la sérialisation en XML.
J'aimerais sérialiser en xml de données de classes que j'ai créé, or je n'arrive pas à trouver mon erreur, mon code sérialise les types de donnée simple (Int String, Double) mais dès que je passe à une classe que j'ai créé, j'ai l'exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.lang.InstantiationException
mon code :
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
 
import java.io.*;
import java.beans.XMLEncoder;
 
public class XMLtest{
 
 
	Obstacle cube=new Obstacle(500,600,400,500);
	//Double cucu=new Double(20.3);
	//String cute=new String("okokok");
	//DInt dd=new DInt(128,64);
 
	public XMLtest()
	{
		try
		{
			XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Test.xml")));
			e.writeObject(cube);
 	     	e.close();
		}
		catch(Exception e)
		{
			System.out.println(e.getMessage());
		}
	}
 
 
	public class DInt implements Serializable{
		public int a,b;
		public DInt(){a=b=0;}
		public DInt(int x){a=b=x;}
		public DInt(int x,int y){a=x;b=y;}
		public DInt(DInt desEntiers){a=desEntiers.a;b=desEntiers.b;}
	}
 
	//classe Obstacle
	public class Obstacle implements Serializable{
		//x1 : extrémité gauche
		//x2 : extrémité droite
		//y1 : extrémité haut
		//y2 ; extrémité bas
		public int x1,x2,y1,y2;
 
		public Obstacle(int x1 , int x2, int y1, int y2)
		{
			this.x1=x1;
			this.x2=x2;
			this.y1=y1;
			this.y2=y2;
		}
 
		public Obstacle(Obstacle obs2)
		{
			x1=obs2.x1;x2=obs2.x2;y1=obs2.y1;y2=obs2.y2;
		}
		int getX1(){return x1;}
		int getX2(){return x2;}
		int getY1(){return y1;}
		int getY2(){return y2;}
		int getX(){return x1;}
		int getY(){return y1;}
		int getWidth(){return(x1-x2);}
		int getHeight(){return(y2-y1);}
	}//fin définition classe Obstacle
 
 
 
 
	public static void main(String[] args)
	{
		XMLtest test=new XMLtest();
 
	}
 
}
voilà, mon problème est certainement trivial mais je bute dessus.
La classe Obstacle est une classe que j'ai déjà utilisé pour un autre programme et qui fonctionne.
Merci d'avance