Übergabe Dateiname (String) an andere Klasse

berti

Mitglied
Hallo,

hab (sicher) ne ganz simple Frage zur Übergabe eines Dateinamen an eine andere Klasse.
Ich lese ganz einfach über Kommandozeile einen Dateinamen ein:
Java:
InputStreamReader in = new InputStreamReader(System.in);
BufferedReader stdin = new BufferedReader(in);
System.out.println("Dateiname eingeben: ");
String fileName = stdin.readLine();

new Klasse2().setFileName(fileName);
Die Variable fileName, also den Dateinamen, möchte ich jetzt in einer 2. Klasse ebenfalls nutzen. Hab es mit folgender setter-Methode in der 2.Klasse versucht.
Java:
public void setFileName(String input){
   fileName = input;
}
Nur liefert mir der Aufruf von fileName in der 2.Klasse eine NullpointerException.
Wo liegt der Fehler? Oder gibt es eine andere Möglichkeit den Dateinamen einfach auch der 2.Klasse zu übergeben?
 
Java:
new Klasse2().setFileName(fileName);
Du erzeugst hier ein Objekt von Klasse2, dass du gar nicht weiter nutzt. Vermutlich hast du irgendwo nochmal
Code:
new Klasse2()
stehen und gehst davon aus, dass da dann schon der fileName gesetzt ist. Das stimmt aber nicht. Der fileName ist nur in der einen Instanz gesetzt.
 
Moin,

hab's zwar nicht ganz verstanden, aber wahrscheinlich suchst Du sowas :

Bastel Dir eine entsprechende GET-Methode
Java:
public String getFileName( )
{
   retrun fileName;
}

und die rufst Du dann in Klasse 2 auf :
Java:
String stringAusKlasseEins = Klasse1.getFileName();

ungetestet !!

Gruß
Klaus
 
@EikeB: Ja, ich erzeuge nochmal ein Objekt
Code:
Klasse2
. Werd mir das nochmal genau angucken.

@VfL_Freak: Ich probier mal aus ob das funktioniert.

Danke euch schonmal, geht echt fix hier....
 
1)
dein objekt von Klasse2 speicherst du nirgends ... das heißt du kannst es auch nirgends wieder verwenden ...
versuch es erstmal so
Java:
Klasse2 objekt=new Klasse2();

2)
es gibt verschiedene wege einem objekt variablen zu übergeben
die beiden wohl einfachsten sind
a) dierekt dem konstruktor übergeben
Java:
class Klasse2
{
	Object objekt;
	public Klasse2(Object objekt)
	{
		this.objekt=objekt;
	}
}

//...
Klasse2 objekt2=new Klasse2(objekt);
//...
b) über setter-methoden
Java:
class Klasse2
{
	Object objekt;
	public Klasse2()
	{
		objekt=new Object();
	}
	public void setObjekt(Object objekt)
	{
		this.objekt=objekt;
	}
}

es gibt noch eine weitere variante auf die ich hier aber nicht näher eingehen möchte

welche der beiden varianten du verwendest hängt davon hab wann und wo der wert der variable gebraucht wird
 

Zurück
Oben