[Java] Metoda klasowa dla wszystkich obiektów / ekstensji
: 11 kwie 2012, o 14:14
Mam klasę w Javie Pracownik oraz drugą klasę ObjectPlus której zadaniem jest przechowywać wszystkie ekstensje w jednym miejscu:
Klasa Pracownik extends ObjectPlus :
W klasie pracownik mam ponadto atrybut powtarzalny , który trzyma listę miejsc pracy dla danego pracownika:
natomiast w metodzie
mam pętle która wypisuje dla danego pracownika listę miejsc pracy:
Chcialabym tą pętle opakować w metodę klasową która działała by dla wszystkich obiektów klasowych i była by wywoływana w sposób
Dziękuje za pomoc
Kod: Zaznacz cały
public class ObjectPlus {
private static Map<String, List<Object>> ekstensje;
//mapa by przechowywać wszystkie obiekty
public ObjectPlus(){ //konstruktor wywolywany gdy tworzymy nowy obiekt w klasie Pracownik
if (ekstensje==null){
ekstensje = new HashMap<String, List<Object>>();
}
String className = this.getClass().toString();
List<Object> ekstensja = ekstensje.get(className);
if(ekstensja == null){
ekstensja = new ArrayList<Object>();
ekstensje.put(className, ekstensja);
}
ekstensja.add(this);
}
//ta metoda zwróci nam ekstensje dla danego obiektu
public List<Object> getEkstensja(){
String className = this.getClass().toString();
List<Object> list = ekstensje.get(className);
return list;
}
//druga taka sama metoda ale bedzie przyjmowala nazwe klasy, i bedzie dzialac na metodach klasowych
public static List<Object> getEkstensja(String className){
return ekstensje.get(className);
}
}
W klasie pracownik mam ponadto atrybut powtarzalny , który trzyma listę miejsc pracy dla danego pracownika:
Kod: Zaznacz cały
public List<String> miejscaPracy = new ArrayList<String>();
Kod: Zaznacz cały
public static void main(String[] args) {
Kod: Zaznacz cały
Pracownik p = new Pracownik();
p.miejscaPracy.add("Bytom");
p.miejscaPracy.add("Kraków");
for (int i=0; i< p.miejscaPracy.size(); i++){ //wypisanie miejsc pracy, druga wersja
System.out.println(p.miejscaPracy.get(i));
}
System.out.println(Pracownik.miejscaPracy());
i zwracała miejsca pracy dla wszystkich pracowników których utworzyliśmy i przypisaliśmy im jakieś miejsca pracy...Dziękuje za pomoc