Parameter an Funktion von einer bestimmten Klasse welche ein Interface Implementiert?
-
Hallo zusammen gibt es eine möglichkeit den Paramater an eine Funktion so zu gestalten das dieser von einen bestimmte Klassentyp sein muss aber auch ein bestimmtes interface implementiert?
Ich habe ein eigenes Interface ISelectable.
davon brauche ich funktionen aber auch die aus der klasse JComponent.jetzt bräuchte ich sowas wie
void foo(JComponent bar implements ISelectable) { ... }
so das der compiler schon abprüft ob das gegeben ist.
-
Ich denke nicht.
Du könntest aber eine entsprechende abstrakte Klasse einführen die beide Vorraussetungen erfüllt. Und diese dann als Parametertyp verwenden.
-
Machbar ist das über Generic Constraints:
<T extends JComponent & ISelectable> void foo(T bar) { }
-
und immer an PECS denken