# Daten werden in ArrayList geschrieben, AL nicht in .xml ?



## Jordan2K8 (19. Feb 2008)

Hallo Ihr,


*Das ist die Datenhaltungsklasse:*


```
@XmlRootElement()
public class SettingsData implements Serializable
{
 
	private static final long serialVersionUID = 1L;
 
	
	private ArrayList<String> bezeichnungAL = new ArrayList<String>();
	
	
	public SettingsData()
	{		
	}
 
        // setXX()
        public void setBezeichnungAL(String bezeichnungAL)
       {
                // String an bezeichnungAL anhängen...
		this.bezeichnungAL.add(bezeichnungAL);
	}
 
}
```


Das ist ein Code Ausschnitt aus einer anderen Klasse, hier wird der Inhalt aus der JCombobox bezeichnungCB ausgelesen und in die ArrayList der Datenhaltungsklasse eingelesen und nach xml serialisiert.

Schaue ich danach in die .xml datei werden alle möglichen daten serialissiert und nicht die Daten im ArrayList "object", warum nicht? Ich habe sogar mit System.out.println Testausgaben gemacht, die Strings aus der JCB sind tatsächlich in der ArrayList drin...


```
try
{ 
	JAXBContext jc = JAXBContext.newInstance(SettingsData.class);			
	Marshaller m = jc.createMarshaller();
	 m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);			    
	
	 OutputStream os = new FileOutputStream("settings.xml");
	  SettingsData object = new SettingsData();	
		    
		    for(int i = 0 ; i < bezeichnungCB.getItemCount() ; i++ )
		    {
		    	object.setBezeichnungAL(bezeichnungCB.getItemAt(i).toString());
		    }	
		    
		    for(int i = 0; i < object.getBezeichnungAL().size(); i++)
		    {
		        System.out.println(object.getBezeichnungAL().get(i));
		 }
		    
		    m.marshal(object, os);			 	
		   os.close();
}
```


----------



## SlaterB (19. Feb 2008)

versuch doch mal testweise an gleicher Stelle die Java-Serialisierung mit ObjectOutputStream,
verweigert sich diese auch?

> Schaue ich danach in die .xml datei werden alle möglichen daten serialissiert und nicht die Daten im ArrayList "object

werden andere Daten von SettingsData geschrieben
(z.B. eine neue Exemplarvariable private String test = "test")
oder wird generell alles von SettingsData nicht geschrieben?


----------



## Jordan2K8 (19. Feb 2008)

SlaterB hat gesagt.:
			
		

> versuch doch mal testweise an gleicher Stelle die Java-Serialisierung mit ObjectOutputStream,
> verweigert sich diese auch?
> 
> > Schaue ich danach in die .xml datei werden alle möglichen daten serialissiert und nicht die Daten im ArrayList "object
> ...



wie gesagt ich habe noch zig andere private int bla ; private String bla; variablen und diese werden ALLE geschrieben nur das vermaledeite ArrayList will net...


----------



## SlaterB (19. Feb 2008)

haben die anderen alle irgendwas gemeinsam,
z.B. gleichlautende getter/ settter (zu Exemplarvariable x -> getX(), setX(x)), im Konstruktor gesetzt oder sontwas?

sind das alles nur primitive Datentypen + String oder klappt schon irgendein höheres Objekt (auch in anderen Klassen)?


----------



## Jordan2K8 (19. Feb 2008)

SlaterB hat gesagt.:
			
		

> haben die anderen alle irgendwas gemeinsam,
> z.B. gleichlautende getter/ settter (zu Exemplarvariable x -> getX(), setX(x)), im Konstruktor gesetzt oder sontwas?
> 
> sind das alles nur primitive Datentypen + String oder klappt schon irgendein höheres Objekt (auch in anderen Klassen)?



also ich habe mir zu allen 10 attributen die nur int und String bisher sind automatisch setter und getter generieren lassen von eclipse.

Wobei ich das nochmals extra für bezeichnungAL machte, das kam raus:


```
public void setProtectionAL(ArrayList<String> bezeichnungAL) {
		this.bezeichnungAL = bezeichnungAL;
	}
```

Oben schreibe ich als Übergabeparameter aber 
	
	
	
	





```
String bezeichnungAL
```
 und nicht
	
	
	
	





```
ArrayList<String>
```
... im Konstruktor habe ich nix gemacht und in anderen klassen benutzte ich bisher nur int/String da ArrayList gescheitert ist. So sieht die .xml aus mit den funktionierenden exporten...:


```
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settingsData>
    <leftBorder>2</leftBorder>
    <maxTextLength>1000</maxTextLength>
    <rightBorder>3</rightBorder>    
</templateData>
```

Ich weiß net worans liegen kann verflixt.  ???:L


----------



## Jordan2K8 (19. Feb 2008)

achso lass dich net von dem settingsData/templateData iritieren in dem code, das habe ich nur halbgar geändert hier...


----------

