tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1076
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    RoCMe RoCMe ist offline Mitglied Gold
    Registriert seit
    Dec 2007
    Beiträge
    193
    Hey!

    Mir ist klar, dass ich mich gerade anstelle wie ein absoluter Anfänger, aber irgendwie kriege ich den Knoten selbst nicht zum Platzen :-/

    Folgende Situation: Ich habe die folgende Klasse, die im Prinzip nur

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    public class ConfigParameter<T> {
        
        private T value;
        
        public ConfigParameter(T myType) {
            this.myValue = myType;
        }
        
        public T getValue() {
            return myValue;
        }
    }

    Jetzt kann ich ein ConfigParameter<Boolean> erzeugen und bekomme auch einen boolean zurück - sehr schön.

    Jetzt mein Problem: Ich habe eine List<ConfigParameter<?>>, die verschiedene der oben definierten ConfigParameter<T> enthält. Und jetzt bekomme ich kein boolean, String, oder Double mehr, sondern nur noch Objects... Muss ich wirklich casten (ich kanns mir nicht vorstellen...), oder sehe ich gerade den Wald vor Bäumen nicht? :-/

    Sorry, ich denke das ist ziemlich billig, aber ich sehe es nicht...

    Gruß,

    RoCMe
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Ja, du müßtest das entsprechend casten. Denk aber bitte beim API-Design daran, nirgendwo in einem Rückgabewert ein ? zu haben. Das ist ein wenig unschön.

    Die Frage ist nun, ob es wirklich geschickt ist, eine generische Klasse zu verwenden, wenn du dann aber eine eine gemeinsame Liste unterschiedliche Typen reinstecken willst. Kannst du die Listen nicht aufteilen?
     

  3. #3
    RoCMe RoCMe ist offline Mitglied Gold
    Registriert seit
    Dec 2007
    Beiträge
    193
    Ja, theoretisch könnte ich die Liste aufteilen, aber das würde wahrscheinlich sehr umständlich.

    Ich versuche zur Zeit, einen Konfiogurationsmanager zu schreiben. Dabei soll es eine Methode
    Code java:
    1
    
    create(ConfigParameter<?> myParams)
    geben, die anhand der übergebenen Parameter eine neue Konfiguration enthält.

    (Anmerkung: Die oben beschriebene Klasse enthält ein weiteres Feld 'name' vom Typ String, die das Attribut identifiziert).

    Wenn ich jetzt für jeden möglichen Datentyp eine eigene Liste übergebe, ändert sich diese Methode jedes Mal, wenn ich einen neuen Datentyp integrieren möchte... Irgendwie unschön, oder nicht.

    Ich hoffe, es ist klar was ich tun will...

    Gruß,

    RoCMe
     

  4. #4
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Hmm ja aber solltest du nicht alles so weit kapseln, dass du den eigentlichen Datentypen nur wissen musst, wenn du den Wert aus den Einstellungen tatsächlich haben willst. Der Rest sollte über entsprechende Interfaces für die Datentypen gekapselt sein. Daher ist die Frage ob der Generische Typ hier überhaupt sinnvoll oder nötig ist.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 17.11.10, 15:35
  2. Generics: Was kann zum List-Objekt hinzu?
    Von Steve222 im Forum Java Grundlagen
    Antworten: 8
    Letzter Beitrag: 29.09.10, 14:02
  3. Generics
    Von bRainLaG im Forum Java
    Antworten: 3
    Letzter Beitrag: 09.12.09, 12:42
  4. Antworten: 5
    Letzter Beitrag: 16.04.06, 14:09
  5. Abspeichern von 2 Arrays mit verschiedenen Typen
    Von LordoftheBord im Forum Delphi, Kylix, Pascal
    Antworten: 5
    Letzter Beitrag: 19.04.04, 14:27