# Klasse in HashMap speichern



## sharam (11. Jan 2007)

Hallo,

ich habe eine HashMap erstellt in der eine ID und eine Klasse gespeichert werden, nun möchte ich aus der HashMap ein Object (Klasse) auslesen und auf ein Attribut der Klasse vom Typ String zugreifen. Leider erhalte ich statt den erwarteten Wert :com.ne.dpreview.myClasses.DocLogic@1a9d02a. Wie kann ich auf meine gespeicherte Klasse in der HashMap bzw. auf die Attribute zugreifen? Ich verwende Java 1.4.


```
Map map = new HashMap();

map.put("0", myClass);

MyClass myClass = (MyClass) map.get( "0" );

System.out.println(myClass.getTest());
```

Vielen Dank im Voraus.

sp


----------



## Wildcard (11. Jan 2007)

Wenn du da wirklich ein Klassen-Objekt und kein Objekt der Klasse drin hast, dann musst du über die Reflection API gehen:
Class#getMethod()#invoke


----------



## MatthiasKnorr (11. Jan 2007)

Willst du Klassen:

```
Map<String,Class> map = new HashMap<String,Class>();
map.put("0", MyClass.class);

Class clazz = map.get("0");
String value = (String)clazz.getMethod("getTest", new Class[0]).invoke(null, new Object[0]);
System.out.println(value);
```
 
oder Objekte deiner Klasse:

```
Map<String,MyClass> map = new HashMap<String,MyClass>();
map.put("0", new MyClass());

MyClass obj = map.get("0");
String value = obj.getTest();
System.out.println(value);
```
in der Map speichern?

Grüße,
MAtthias


----------



## sharam (11. Jan 2007)

Vielen Dank!


----------

