# Klasse in Datenbank speichern



## puddah (25. Mrz 2008)

Hallo zusammen,

ich hab mal wieder ein kniffeliges Problem. Ich möchte eine Klasse in einer Datenbank speichern.
Also keine Instanz einer Klasse sondern das Class-Objekt selbst. Um dies zu tun serialisiere ich das
Class-Objekt und schreibe das ganze dann als BLOB in eine Datenbank. Wenn ich das ganze wieder
deserialisieren möchte bekomme ich allerdings eine ClassNotFoundException und ich bekomme gemeldet,
dass er die Klasse, dessen Class-Objekt zuvor serialisiert wurde, nicht finden kann.

Ich versteh echt nicht wo das Problem dabei liegt. Ich möchte ein Class-Objekt serialisieren.
Das heißt doch das der Typ des Objekts "Class" ist und nicht der Typ den das Class-Objekt repräsentiert. ???:L 

Hat jemand ne Ahnung wie ich dieses Problem umgehen kann? Evtl. gibts ja andere möglichkeiten eine
Klasse in ner DB zu speichern. Wäre für jeden Tipp dankbar.

Gruß

PS: Das Class-Objekt hole ich mir zuvor über Reflection aus einem Array


----------



## maki (25. Mrz 2008)

Ohne das ich jetzt eine Lösung wüsste, bin ich doch neugierig, warum man eine Klasse in eine DB Speichern wollen würde?


----------



## Niki (25. Mrz 2008)

Ist es nicht so dass es für jede Klasse nur ein einziges class Objekt gibt? Daher funktioniert ja der Vergleich mit class == class.
Wenn du jedoch ein Class Objekt deserialisieren möchtest würde ja eine weitere Instanz existieren. Ich vermute mal dass es da sowieso zu Problemen kommt


----------



## Niki (25. Mrz 2008)

Also das funktioniert:

```
Class c = Object.class;
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		ObjectOutputStream oos = new ObjectOutputStream(bos);
		oos.writeObject(c);
		byte[] b = bos.toByteArray();
		oos.close();
		
		ByteArrayInputStream bis = new ByteArrayInputStream(b);
		ObjectInputStream ois = new ObjectInputStream(bis);
		Object o = ois.readObject();
		
		System.out.println(((Class)o).getName());
```


----------



## ms (25. Mrz 2008)

Das hier könnte dir helfen: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html

ms


----------

