existe t'il un mecanisme equivant au pointeur de fonction du C++ en java?
si oui un petit exemple svp
existe t'il un mecanisme equivant au pointeur de fonction du C++ en java?
si oui un petit exemple svp
C'est quoi un pointeur de fonction ???
Non ya pas ca en Java, par contre en cherchant bien, il y a moyen de faire qq chose dans le genre grace a la reflection..
Explique le contexte et je te file un exemple..
Bulbo
en fait je dois avoir une methode qui dois creer des objets
en parametre de celle ci je lui passé un pointeur de fonction qui me permettait de les creer et me les retourne(methode generique)
Ce que tu peux faire en java c'est creer une interface:
Par exemple:
Les classes pouvant etre passees en argument devront implementer l'interface et retourner l'objet qui leur correspond...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public interface ObjectCreator { public Object createObject() } // Au lieu de passer un pointeur de fonction tu fais public void uneMethode(..., ObjectCreator aCreator) { ... Object newObject = aCreator.createObject(); }
Par exemple:
En plus c'est un poil plus objet que le passage de pointeur en parametre, et le compilo peut au moins verifier que les classes possedent la fonction en question ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class StringCreator implements ObjectCreator { public Object createObject() { return "Bulbo"; } }
Bulbo
mais s'il y a plusieurs objets qui implementent l'interface y pas de pb?
Pourquoi y aurait il probleme, c'est comme lorsque tu as plusieurs objets qui heritent de la meme classe..
L'avantage de cette methode c'est justement que tu ne te preoccupe pas du type effectif de l'objet, pour la methode c'est une ObjectCreator avec la methode createObject que tu veux ... Ca marche aussi comme ca en C++ (avec une classe au lieu d'une interface), le pointeur de fonction est un vieux truc sale qui vient du C..
Bulbo
je sais pas si ca va faire l'affaire mais merci beaucoup
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager