Interface mit generische Typen

tanzverfuehrung

Bekanntes Mitglied
hallo, und zwar habe ich ein Interface...

Java:
public interface IBasicUiService<T extends AbstractCfg> {
	@Nonnull
	void setUi(@Nonnull T input, @Nonnull Composite parent);
}

nun habe ich eine Klasse die das implementiert...

Java:
public class ABmBasicUiService implements IBasicUiService<ABmConfiguration> {

ABmConfiguration erbt von AbstractCfg

ebenfalls habe ich eine zweite Klasse, die das interface auch implementiert

Java:
public class CDeBasicUiService implements IBasicUiService<Set<CDeEntry>> {

CDeEntry erbt auch von AbstractCfg

JEdoch brauche ich halt ein Set von CDeEntry
Java:
<Set<CDeEntry>>

Also mir ist klar das es nicht geht, weil Set ja nicht von AbstractCfg erbt, aber könnt ihr mir sagen wie ich das am besten realisiere....?

Also ich muss ja bestimmt nur das Interface jetzt bearbeiten...

Danke im Vorraus
 
Zuletzt bearbeitet:
Ein weiteres Interface einfügen, welches dein generisches erweitert.

Java:
public interface IBasicSetUiService<S extends Set<T >, T extends AbstractCfg> extends IBasicTest<T> {

}

😀 kompilieren tut es, in wiefern es wirklich funtkioniert kann ich nicht testen.
 
also mein teamleiter meinte, die einfachste lösung ist das extends aus dem Interface zu entffernen.

Java:
public interface IBasicUiService<T> {
 
Klar wäre die einfachste Lösung!
Dann kannst du das Interface aber mit allen Typen verwenden! Auch mit JPanel zum Beispiel (inwiefern das Probleme bereiten könnte unabsichtlich ....)
 
Was ist wenn du den Parameter "&" verwenden würdest?
Würde das dein Problem lösen?
Java:
public interface IBasicUiService<T extends AbstractCfg & Set<AbstractCfg>> {

Ich kann das ganze gerade auf der Fahrt auf meinem Smartphone nicht ganz nachvollziehen.
Aber damit kannst du weitere Obertypen definieren.

Grüße
Net

Edit: Einziges Problem wäre evt. das ein Set<Abstract> dann ungültig wäre, weil Set<Abstract> kein Obertyp von Set<Abstract> wäre. Einfach mal rumprobieren.
 
Zuletzt bearbeitet:

Zurück
Oben