Auf Thema antworten

Hi,


ich habe folgendes kleines Problem


Ich habe 2 config Objects von denen eins vom anderen erbt.


[code=Java]public class CxConfig {


    HashMap<Integer, String> myHashMap = new HashMap<Integer, String>();

   

    public void addValue(Integer key, String value){

        myHashMap.put(key, value);

    }

   

    public String getValue(Integer key){

        return myHashMap.get(key);

    }

   

    public String getModiValue(Integer key){

        String modiValue = getValue(key);  //#1

        return modiValue + "_modi";

    }

}[/code]


und


[code=Java]public class OConfig extends CxConfig{


    public void addValue(Integer key, String value){

        super.addValue((key - 1), value);

    }

   

    public String getValue(Integer key){

        return super.getValue((key - 1));

    }

   

    public String getModiValue(Integer key){

        return super.getModiValue((key - 1));

    }

}[/code]


diese ergeben sich aus der geschichtlichen Entwicklung des codes.


Nun ein Beispiel wie es genutzt werden kann:


[code=Java]    public static void main(String[] args) {

        OConfig oc = new OConfig();

        oc.addValue(1, "value one");

        oc.addValue(2, "value two");

       

        String value = oc.getModiValue(2);

        System.out.println(value);

    }[/code]


Da ich ja bei getModiValue die 2 mit reinnehme erwarte ich natürlich das ich "value two_modi" bekomme. Leider bekomme ich "value one_modi".


Dies kommt daher das bei #1 halt nicht die methode aus CxConfig sondern aus OConfig genommen wird. Daher wird von der ursprünglich mitgegebenen 2  zwei mal -1 gerechnet. Eigentlich darf es ja nur einmal -1 sein.


Nun endlich due Frage.

Wie kann ich bei #1 die methode getValue(key); dazu bringen nicht erst in oConfig zu springen sondern in CxConfig zu bleiben. Habe es schon mit this.getValue(key); probiert aber das klappt auch nicht.

(In getValue(key); ) passiert eigentlich noch ein bischen mehr als nur den Wert zu geben weshalb ich schon die methode benutzen möchte)


Hoffe jemand kennt eine super.Loesung :)



Oben