vector zeigt eine weiße konsole an?

nizy

Grünschnabel
Hallo, ich habe ein kleines Problem wo ich einfach nicht weiter komme.

Code:
package presentation;
import business.*;
import java.io.*;
import java.util.*;


public class Showdata

{	
	private Vector FirstN = new Vector();
	private Vector LastN = new Vector();
	
	public Showdata(){
		this.FirstN = getFirstname();
		this.LastN = getLastname();
	}
	
// setter
	
	public void setFirstname(Vector Vorname){	
		for(int fn = 0; fn < Vorname.size(); fn++){				
			this.FirstN.add(Vorname.get(fn));
			//System.out.println(Vorname.get(fn)); geht (daten also da!)
		}		
	}	
		
	public void setLastname(Vector Nachname){		
		for(int fn = 0; fn < Nachname.size(); fn++){				
			this.LastN.add(Nachname.get(fn));
			//System.out.println(Nachname.get(fn)); geht ( daten also da!)
		}		
	}	
	
// getter	
	public Vector getFirstname(){return this.FirstN;}
	public Vector getLastname(){return this.LastN;}
	
// Main-Function	
	
	public static void main(String[] args)
	throws IOException
	{			
		Validation v = new Validation();
		v.getEntries();					
				
		
		try{	
		Showdata xs = new Showdata();
		
		Vector Vorname = xs.getFirstname();		
		
		Vector Nachname = xs.getLastname();	
		
		for(int op = 0; op < Vorname.size(); op++){
			System.out.println(Vorname.get(op).toString() + "\t" + Nachname.get(op).toString());
		}				
		}catch(Exception e){
			System.err.println(e);
		}
	}
		
		
}

jemand eine Ahnung warum ich einfach nur eine weiße Konsole sehe ? obwohl die Daten in den set - Funktionen ja da sind?

(denke mal es liegt daran, wie ich sie in die private vectoren speichere..? )

schonmal vielen Dank im voraus.
 

Matze

Weltenwanderer
Wenn ich das richtig sehe, dann liegt das daran, dass die Vectoren einfach leer sind ^^.

Also: in deiner Main-Methode erstellst du ja ein neues Objekt deiner ShowData-Klasse. Also werden auch die Vectoren darin neu angelegt. Und noch bevor du irgendeine Setter-Metode benutzt, lässt du die Vectoren ausgeben. :)

Oder hab ich irgendwas übersehen?
 

hammet

himekishi
Aber dann doch sicher nicht in der Showdata-Instanz, die du ausgeben willst.
Wie Matze schon sagte, erzeugst du in deiner Main-methode eine neue Instanz von Showdata und gibst die Vectoren DIESER Instanz aus. Also musst du auch die Setter dieser Instanz nutzen um sie zu befüllen, ansonsten bleiben sie leer.
 

Matze

Weltenwanderer
JA, aber benutzt das andere .java denn auch das Gleiche Objekt wie diese Main-Methode? Ich denke nicht. Das würde heißen, dass deine andere .java und diese Main völlig aneinander vorbei gehen und somit kann gar nichts angezeigt werden.
 

nizy

Grünschnabel
Code:
package business;
import integration.*;
import presentation.*;

import java.util.*;
import java.io.*;

public class Persons {
		
	public void setPersons(Vector Vname, Vector Nname)
	{		
		Showdata set = new Showdata();
				
			set.setFirstname(Vname);			
			set.setLastname(Nname);
				
	}
}

mit dieser .java übergebe ich die Vectoren Vname, und Nname an die showdata.java

( und da in den set methoden kann ich die daten ja noch alle auslesen mit System.out... )

ps. bin noch ziemlich unerfahren was java angeht (sorry)

edit. wenns hilft kann ich ja sonst mal alle .java Datein posten wenn das hilft ? aber denke in den anderen liegt nicht der Fehler, da ich ja die Daten bist in die Showdata bekomme.
 
Zuletzt bearbeitet:

Matze

Weltenwanderer
Also nochmal:
In deiner Main erzeugst du ein Objekt und willst von diesem gleich auslesen, ohne dass du etwas in die Vectoren DIESES Objekts schreibst.
Mag schon sein dass du in ein ANDERES Objekt was schreibts, aber nicht in das, welches in der Main Methode NEU erzeugt wird.
 

Matze

Weltenwanderer
Kein Problem, dafür is das Forum ja da.
Da du neu bist, noch 2 Hinweise:
1. Achte auf deine Groß- und Kleinschreibung. Da legen die Mods und Admins hier sehr viel Wert drauf
2. Wenn deine Frage beantwortet wurde, klicke bitte unten auf den gelben "Erledigt" - Button ;)