Tenue Signature
Si vous ne pouvez pas changer votre signature de la méthode (par exemple, si vous devez recevoir un Object
et appelez addActionListener()
s'il y a une telle définition de la méthode), une solution plus générale/robuste utiliserait Java Reflections pour vérifier si l'objet réel a une méthode addActionListener()
définie, et l'appeler également par des réflexions. Cela semble une approche très hacky, de toute façon.
Changing Signature
Si vous pouvez modifier votre signature de la méthode, essayez d'utiliser AbstractButton
(https://docs.oracle.com/javase/7/docs/api/javax/swing/AbstractButton.html#addActionListener(java.awt.event.ActionListener)), qui est la superclasse qui définit cette méthode pour JButton
, JToggleButton
et JMenuItem
, par exemple (voir « Direct connus Sous-classes "et l'arbre de définition de classe pour savoir où les méthodes sont réellement fournies).
Cette seconde approche ne fonctionnera que s'il existe réellement une seule superclasse définissant la méthode. S'il y en a plus d'un, vous devrez vérifier les classes possibles en utilisant if-else
structure et instanceof
+ distribution explicite (que vous pouvez conserver votre signature originale Object
).
Si vous donnez plus d'informations sur votre problème d'origine (par exemple, pourquoi avez-vous besoin d'une telle méthode), nous serons probablement en mesure de trouver de meilleures approches.
ce qui est 'this' définition de la classe? extends/implements quelles classes/interfaces? –
'this' est un ActionListener – qry