Hey ich habe hier das Problem dass ich mir mit einer Factory klasse immer neue Objecte liefere und diese dann in ein array adde, dabei hat sich aber das problem aufgetan dass irgendwie auch die daten im array geändert werden. hoffe um rat. Wenn ich es normal erzeuge gehts.
Hier mal die Methode wo ich das Array fülle:
Hier noch die Factory methode
dazu noch die createSupplier() methode:
Hier noch das Object array und die klassen:
Danke schonmal
Hier mal die Methode wo ich das Array fülle:
Java:
verbindung = getConnection(info);
Statement sqlAnw = verbindung.createStatement();
ArrayList<Supplier> array = new ArrayList<Supplier>();
ResultSet rs = sqlAnw.executeQuery("SELECT suppliers.*, places.ort " +
"FROM suppliers, places " +
"WHERE places.plz = suppliers.plz " +
"ORDER BY suppliers.name ASC");
Supplier lieferant;
System.out.println("getAllSuppliers--------------------------------------------");
while(rs.next())
{
// lieferant = new Supplier();
lieferant = ClassFactory.getSupplier();
System.out.println("Nach ClassFactory: "+lieferant.toString());
lieferant.setName(rs.getString("name"));
lieferant.setId(rs.getString("idlieferant"));
lieferant.setPlz(rs.getInt("plz"));
lieferant.setWohnort(rs.getString("ort"));
lieferant.setAdresse(rs.getString("adresse"));
lieferant.setHausnummer(rs.getString("hausnummer"));
System.out.println("Nach Befüllen: "+lieferant.toString());
array.add(lieferant);
for(int i = 0; i < array.size(); i++)
System.out.println("Nach dem hinzufügen zum array: "+array.get(i).toString());
}
Java:
/*Returns a Supplier or Creates a new One if doesent alreadyd Exist*/
public static Supplier getSupplier()
{
//Bis zum Ende des Arrays nach der OID suchen und dann zurückgegeben wenn es nicht gefunden wird, ein neues erzeugen zurückgeben und dem Array
//hinzufügen
for(int i=0; i < ObjectArray.size();i++)
if(ObjectArray.get(i).OID==OIDS.SULPPLIER)
return (Supplier) ObjectArray.get(i);
return (Supplier) createSupplier();
}
Java:
public static Supplier createSupplier()
{
Supplier s = new Supplier();
ObjectArray.add(s);
return s;
}
Java:
//Array:
static ArrayList<StateOIDs> ObjectArray = new ArrayList<StateOIDs>();
//Supplier Klasse:
public class Supplier extends StateOIDs
{
String id;
String name;
String adresse;
String wohnort;
String hausnummer;
int plz;
public Supplier()
{
OID = OIDS.SULPPLIER;
state = Conditions.ILLEGAL;
}
public Supplier(String id, String name, String adresse, String hausnummer,
int plz)
{
super();
this.id = id;
this.name = name;
this.adresse = adresse;
this.hausnummer = hausnummer;
this.plz = plz;
}
//Getter und Setter
.
.
.
.
//State OIDS klasse:
public class StateOIDs
{
protected int state;
protected int OID;
}
Danke schonmal
Zuletzt bearbeitet: