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

S

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

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

njans

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

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

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();
  }
}
 
S

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:
C

coco07

Bekanntes Mitglied
Nicht wissen wofür ein Interface da ist, aber bereits mit Generics rumhantieren
 
C

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
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
Kirby_Sike 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
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
T Methode implementieren Java Basics - Anfänger-Themen 21
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
J Methode als Class anlegen Java Basics - Anfänger-Themen 7
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
P Methode trim() ohne StringBuilder Java Basics - Anfänger-Themen 1
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
P Problem beim Überschreiben einer vererbten Methode Java Basics - Anfänger-Themen 4
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
O BiPredicate in einer forEach Methode Java Basics - Anfänger-Themen 10
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
G Java charAt Methode Java Basics - Anfänger-Themen 10
B main Methode Java Basics - Anfänger-Themen 5
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
1 main-Methode erweitern, Nachfrage nach wiedeholung Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben