# List.add(Object) führt zu NullPointerException



## TJava (7. Apr 2011)

So sieht das ganze aus.Woran liegt das?


```
private List<TestObject> testObjects = null;
```


```
public void putData(String id, String strData, AutoItFileType type,
			String desc) {

		AutoItTestObject autoItTestObject = new AutoItTestObject(id, strData,
				type, desc);

		TestObject testObject = (TestObject) autoItTestObject;
		System.out.println(testObject.getStringData());
		System.out.println(testObject.getID());
		System.out.println(testObject.getTypeID());
		System.out.println(testObject.getStringData());
		if (autoItTestObject instanceof TestObject) {
			testObjects.add(testObject);
		}
		// testObjects.add(testobject);

	}
```


----------



## SlaterB (7. Apr 2011)

ist dir bekannt, was NullPointerException bedeutet?
ist dir bekannt dass eine Variable null sein kann oder eben nicht, dann auf ein Objekt verweist?

edit:
vergleiche

```
TestObject testObject = (TestObject) autoItTestObject;
System.out.println(testObject.getStringData());
```
vs

```
TestObject testObject = null;
System.out.println(testObject.getStringData());
```
was wird wohl bei beiden für eine Ausgabe kommen?


----------



## TJava (7. Apr 2011)

Die Variabel ist aber nicht null denn es wird doch etwas ausgegeben


```
TestObject testObject = (TestObject) autoItTestObject;
System.out.println(testObject.getStringData());
```

Wenn ich dann direkt danach das Object adden will passiert die NullPointerException

```
testObjects.add(testObject);
```

verstehe ich leider nicht.


----------



## SlaterB (7. Apr 2011)

testObject ist nicht null, stimmt, war nur ein Beispiel,
null in eine Liste einzufügen würde auch keine Fehlermeldung bringen, das ist erlaubt

Problem ist ein anderes Objekt/ Variable das/ die null ist, immer noch ein Rätsel? 
die Zeile der Exception weißt du doch schon


----------



## TJava (7. Apr 2011)

ja immer noch

```
testObjects.add(testObject);
```

Das ist die Zeile?

und das hier ist im Main:


```
test.putData("1", "Hallo", AutoItFileType.REF_FILE, "Dies ist eine Ref File");
		test.putData("2", "tshcüss", AutoItFileType.NA_FILE, "dies ist die Na_File");
		test.getObjects();
```


----------



## TJava (7. Apr 2011)

```
Exception in thread "main" java.lang.NullPointerException
	at de.usu.foxtrot.autoit.AutoItTestImplementation.putData(AutoItTestImplementation.java:45)
	at de.usu.foxtrot.framework.Start.main(Start.java:27)
```


----------



## AmunRa (7. Apr 2011)

okey hab deinen Letzen beitrag erst zuspät gelesen.


edit:


```
private List<TestObject> testObjects = null;
```


----------



## TJava (7. Apr 2011)

Das habe ich schon geändert, trotzdem nix :-(


----------



## TJava (7. Apr 2011)

```
public void putData(String id, String strData, AutoItFileType type,
			String desc) {

		AutoItTestObject autoItTestObject = new AutoItTestObject(id, strData,
				type, desc);

		TestObject testObject = (TestObject) autoItTestObject;
		testObjects.add(testObject);


	}
```


----------



## AmunRa (7. Apr 2011)

Was hast du schon geändert?

testObjects ist null.

und die Fehlermeldung sagt dir ja eigentlich auch, dass auf Zeile 45 der Fehler liegt, alles müsstest du nur dort nachsehen


----------



## TJava (7. Apr 2011)

```
private List<TestObject> testObjects = null;
```
zu

```
private List<TestObject> testObjects ;
```


----------



## AmunRa (7. Apr 2011)

das ist ja noch falscher.

Wie legt man in JAva eine Object an?


----------



## TJava (7. Apr 2011)

```
List<TestObject> testObjects = new List<TestObject>() ;
```

aber das kann er nicht instanzieren


----------



## AmunRa (7. Apr 2011)

mach  mal


```
List<TestObject> testObjects= new ArrayList<TestObject>()
```

List ist ein Interface und keine Klasse. 

Du brauchst eine Klasse die dieses Interface implementiert. z.B ArrayList


----------



## TJava (7. Apr 2011)

Ohh ja Danke. bin ebend ein Idiot :-D


----------

