Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public Hashmap getLooupTable(int id){
java.util.HashMap<String,Objekt der klasse X> ruleSet = new java.util.HashMap<String,Objekt der klasse X>();
X valRules = new X();
.
.
.
while( iter.hasMoreElements() == true )
{
db = (Cfg_validation) iter.nextElement();
X.load(db.get_id()); // --> das objekt wird geladen
ruleSet.put(db.get_feldname(),X);
}
.
.
.
}
also danach sieht der inhalt meiner hashmap so aus:
String - objekt X
feldname1 - x.getfieldname=feldname1
feldname2 - x.getfieldname=feldname2
feldname3 - x.getfieldname=feldname3
jetzt folgendes. in einer anderen klasse rufe ich meine hashmap auf:
was ich jetzt haben will, ist ein object der klasse X das nur dei inhalte besitzt wo der "feldname3"
drin vorkommt. (minlength, maxlength) sind zb noch vorhanden.. und noch andere werte.
was jetzt aber immer als ergebnis gerauskommt ist lediglich ein objekt das immer den letzten wert enthält.
also, wenn ich feldname1-5 habe. bekomme ich immer alle inhalte von feldname5 zurück... egal welchen feldnamen ich oben eingebe.
ich vermute mal, das die X irgendwas anderes bedeuten sollen oder?
X.load.. hier rufst du keine statisch methode auf, oder? sondern eine methode die das objekt verändert.
du fügst glaub ich immer das selbe objekt ein und änderst es halt immer.. die referenzen in der map zeigen aber auf das selbe objekt...
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
ArrayList<Container> list = new ArrayList<Container>();
Container c = new Container();
c.setValue("test1");
list.add(c);
c.setValue("test2");
list.add(c);
c.setValue("test3");
list.add(c);
for(Container container: list)
System.out.println(container.getValue());
}
}
class Container{
String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
falls nicht musst du mal den original code ohne den x posten...