Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^

skuki

Aktives Mitglied
Hallo,

kann ich eine Generische Methode so erstellen, dass sie beliebige Objekte einer Klasse als Parameter erlaubt, die ein bestimmtes Interface implementieren?


Habe zwei abstrakte Klassen "Schachtel" und "Geschenk" die unabhängig voneinander Untertypen besitzen.

Weiters habe ich eine Klasse "Schachtellager" die Geschenke einpackt.

void packe(Geschenk g) reicht mir aber nicht, da auch eine Schachtel in eine andere Schachtel eingepackt werden kann.


Würde das ungern über dynamisches Binden lösen, da hier der Code dupliziert wird.

Hätte hier jemand einen Tipp? :)
danke!
 

VfL_Freak

Top Contributor
Moin,

habe offen gestanden kein Wort von dem verstanden, was Du uns sagen willst ...

"packe(Geschenk g)" IST doch eine Methode, die beliebige Objekte einer Klasse (hier "Geschenke") als Parameter erlaubt .....
:bahnhof:

Gruß
Klaus
 

njans

Top Contributor
Wenn Schachtel und Geschenk keine Gemeinsamkeiten in Form von Interfaces oder Abstrakten Mutter Klassen haben, dann geht das wohl nicht.
 

Joose

Top Contributor
Warum verwendest du kein Interface dafür?
Zum Beispiel implementieren Schachtel und Geschenk beide das Interface "Packageable" (oder wie auch immer ein passendes Interface heißen würde ;)).
Dein Schachtellager bekommt dann nur ein "Packageable" Objekt übergeben und kann es weiterverpacken oder eben lagern.
 

Flown

Administrator
Mitarbeiter
Du kannst das mit einem Flag-Interface lösen.

In soetwa:
Java:
import java.util.ArrayList;
import java.util.List;

public class Store {
  public static void main(String... args) {
    Store t = new Store();
    t.add(new Present());
    t.add(new LittlePresent());
    t.add(new Box());
    for (Packable p : t.list) {
      p.verbose();
    }
  }
  
  List<Packable> list;
  
  public Store() {
    list = new ArrayList<>();
  }
  
  public void add(Packable pckg) {
    list.add(pckg);
  }
  
  static class Present implements Packable {
    @Override
    public void verbose() {
      System.out.println("Present");
    }
  }
  
  static class LittlePresent extends Present {
    @Override
    public void verbose() {
      System.out.println("Little present");
    }
  }
  
  static class Box implements Packable {
    @Override
    public void verbose() {
      System.out.println("Box");
    }
  }
  
  interface Packable {
    void verbose();
  }
}
 

skuki

Aktives Mitglied
Ich hab das anscheinend sehr unverständlich beschrieben. Entschuldigung

Natürlich habe die beiden Klassen ein Interface gemeinsam.

Dein Schachtellager bekommt dann nur ein "Packageable" Objekt übergeben und kann es weiterverpacken oder eben lagern.

Das so etwas geht habe ich zwar gehofft aber nicht gewusst. Reicht dann einfach void verpacke(Packageable p) ?

danke

EDIT:
Perfekt danke :)
 
Zuletzt bearbeitet:

coco07

Bekanntes Mitglied
Es geht vor allem darum, dass du mit Interfaces einen oder mehrere Datentypen für ein und das Selbe Objekt verwenden kannst. Und dass man in der argumentenliste Objekte von bestimmten Datentypen deklarieren kann, wusstest du sicherlich :) Also frag dich lieber, ob du Interfaces auch richtig verstehst...
Das soll auch nicht böse gemeint sein :)

Grüße coco07
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
A Generische Methode Java Basics - Anfänger-Themen 4
H Collections List in List<SpecificType> als stat. generische Methode zurückgeben Java Basics - Anfänger-Themen 4
B Generische Methode Java Basics - Anfänger-Themen 2
V Methoden Umwandlung in generische Methode Java Basics - Anfänger-Themen 8
H Statische generische Methode Java Basics - Anfänger-Themen 2
D generische methode <T> void . Java Basics - Anfänger-Themen 9
F Generische Methode - was bringt der Wildcard Operator? Java Basics - Anfänger-Themen 7
I Generische Funktion Java Basics - Anfänger-Themen 3
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
D Generische Klasse Java Basics - Anfänger-Themen 6
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
O Generische Typen Java Basics - Anfänger-Themen 9
M Generische Klassen "FlaschenRegal" Java Basics - Anfänger-Themen 13
Queiser Datentypen 2 generische Datentypen für eine Schnittstelle Java Basics - Anfänger-Themen 1
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
J Sortierte generische Liste Java Basics - Anfänger-Themen 1
D statische generische Methoden Java Basics - Anfänger-Themen 3
M Methoden Generische Klasse - ändern einzelner Attributwerte Java Basics - Anfänger-Themen 2
N Generische Schnittstellen Java Basics - Anfänger-Themen 2
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
D Generische Typen Java Basics - Anfänger-Themen 20
S Erste Schritte Generische Klassen sind toll ....aber warum sollte ich das je benutzen? Java Basics - Anfänger-Themen 3
L Generische Liste Java Basics - Anfänger-Themen 4
B Generische Queue programmieren Java Basics - Anfänger-Themen 5
A Probleme mit MergeSort Generische Liste Java Basics - Anfänger-Themen 0
J Probleme mit static generische Klasse Java Basics - Anfänger-Themen 6
M Generische Liste Java Basics - Anfänger-Themen 4
B Generische Klasse Java Basics - Anfänger-Themen 7
B Generische Methoden Java Basics - Anfänger-Themen 8
F Collections Generische Klasse/Methoden Java Basics - Anfänger-Themen 19
L Generische Warteschlange Java Basics - Anfänger-Themen 8
A Generische Datentypen Java Basics - Anfänger-Themen 8
bluerob generische ArrayList -> erbende Objekte auslesen Java Basics - Anfänger-Themen 24
L Generische Containerklasse Java Basics - Anfänger-Themen 9
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
S Generische HashMap Java Basics - Anfänger-Themen 2
M Klassen Generische Klassen, Personen und Gruppen Java Basics - Anfänger-Themen 6
L Generische ArrayList, CastProblem Java Basics - Anfänger-Themen 2
W generische Module Java Basics - Anfänger-Themen 2
S Generics und "generische Feldzuweisungen" Java Basics - Anfänger-Themen 5
C unterschied generische typen und supertypen als methodenparameter Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
F Generische Methoden Problem Java Basics - Anfänger-Themen 5
E Generische Arrays durch Typecast mit Object-Array Java Basics - Anfänger-Themen 11
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
B Was passiert, wenn eine konkrete Klasse von generische Klasse erbt? Java Basics - Anfänger-Themen 14
B Generische Vererbung was ist der Unterschied? Java Basics - Anfänger-Themen 4
W Generische Klassen Java Basics - Anfänger-Themen 3
W Generische Klassen und Casting Java Basics - Anfänger-Themen 6
F Generische Typen auch für statische Methoden? Java Basics - Anfänger-Themen 13
J array über generische arraylist Java Basics - Anfänger-Themen 7
B instanceof Prüfung für generische Typen Java Basics - Anfänger-Themen 5
N 2 dimensionale generische Arrays Java Basics - Anfänger-Themen 9
G Frage zum Ungang mit Generische Datentypen Java Basics - Anfänger-Themen 4
0x7F800000 generische arrays mal wieder )-; Java Basics - Anfänger-Themen 6
J Generische Methoden Java Basics - Anfänger-Themen 6
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
S Parameterübergabe: Generische Klasse Java Basics - Anfänger-Themen 4
S generische Felder Java Basics - Anfänger-Themen 2
P Generische Klasse Java Basics - Anfänger-Themen 8
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
F Generische Liste von generischen Objekten. Java Basics - Anfänger-Themen 3
H generische Methoden Java Basics - Anfänger-Themen 5
N generische HashMap und Iterator Java Basics - Anfänger-Themen 2
H generische Bausteine, heterogene Datenstrukturen Java Basics - Anfänger-Themen 2
J generische klassen neue Instanz Java Basics - Anfänger-Themen 5
H Generische Klassen. Java Basics - Anfänger-Themen 16
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60

Ähnliche Java Themen

Neue Themen


Oben