generische Interface und konkrete Methode

Hallo,

irgend wie fehlt mir ein wenig der Durchblick

habe mit ein generische Interface erstellt
Code:
public interface ginter<T> {
	public int methode(T a);
}

jetzt würde das gern so ähnlich nutzen wie z.b. compareable in der Collection.Sort
also eine Klasse erzeugt
Code:
public class nutze{

public void machwas(List<ginter<T>>  liste){

}

und hier verstehe ich das nicht mehr. Ich habe die Option die Klasse mit dem Generic zu nutzen also public class nutze<T> .... was ich ja nicht will oder die Methode public <T> void machwas....

Was mach ich da falsch bzw wie formuliere ich das korrekt damit ich machwas später mal in etwa so nutzen kann
Code:
List<XYC> test //XYC implementiert das interface
machwas(test);

Danke schon mal.
 
Was ist dein konkreter Anwendungsfall?

Übrigens Klassen/Interfaces schreibt man groß (das Initial).

Wenn du es nacher wie z.B. in Collections.sort nutzen möchtest, dann musst du die Methode generisch gestalten:

Java:
public class Nutze{
  public <T> void machWas(List<? extends Ginter<T>>  liste){...}
}
 
Zuletzt bearbeitet:
Ich bin mir nicht sicher, ob ich deine Frage richtig verstehe ... aber wenn ja, dann sollte deine Definition von #machwas() in etwa so aussehen:

Code:
 public <T extends ginter<? super T>> void  machwas(List<T> liste)

Damit ist sichergestellt, dass deine Liste einen beliebigen Typen T aufnehmen kann, der aber das Interface ginter (oder davon abgeleitet) implementieren muss.

Anabhängig davon: Tu dir selbst den gefallen und halte dich an gängige NamingConventions!
 
Danke. Glaub habe das Problem erkannt. Der Fehler liegt wohl in der Definition der Methode. Hatte die List selbst schon parametriert und das ist an dieser Stelle falsch.

Gruß Hans
 

Zurück
Oben