Passage de fonction en argument
Résolu/Fermé
dadita
Messages postés
9
Date d'inscription
dimanche 30 décembre 2012
Statut
Membre
Dernière intervention
25 août 2013
-
14 juil. 2013 à 15:15
dadita Messages postés 9 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 25 août 2013 - 19 juil. 2013 à 13:39
dadita Messages postés 9 Date d'inscription dimanche 30 décembre 2012 Statut Membre Dernière intervention 25 août 2013 - 19 juil. 2013 à 13:39
A voir également:
- Passage de fonction en argument
- Fonction si et - Guide
- Passage qwerty azerty - Guide
- Fonction moyenne excel - Guide
- Durée de fonctionnement processeur ✓ - Forum Windows 10
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 14/07/2013 à 17:08
Modifié par KX le 14/07/2013 à 17:08
En Java il n'y a pas de pointeur, pour la simple et bonne raison que l'on n'accède pas directement à la mémoire de l'ordinateur car celle-ci est gérée par la machine virtuelle. La manipulation des objets se fait par référence, ces références sont parfois appelées "handle" mais je trouve que c'est un abus de langage.
Pour faire ce que tu veux en Java il faudrait faire très différemment, on appelle ça de l'introspection, c'est à dire qu'on va chercher un objet qui correspond à une classes, puis on applique des méthodes sur l'objet Class pour récupérer un objet Method qui correspond à la méthode que l'on souhaite manipuler.
Par exemple voici une simple récupération des méthodes Math.sinus et Math.cosinus auxquelles on passe en paramètre la valeur π/2 via la méthode "appel" :
Pour faire ce que tu veux en Java il faudrait faire très différemment, on appelle ça de l'introspection, c'est à dire qu'on va chercher un objet qui correspond à une classes, puis on applique des méthodes sur l'objet Class pour récupérer un objet Method qui correspond à la méthode que l'on souhaite manipuler.
Par exemple voici une simple récupération des méthodes Math.sinus et Math.cosinus auxquelles on passe en paramètre la valeur π/2 via la méthode "appel" :
import java.lang.reflect.Method; public class essai { public static void main(String[] args) throws Exception { Class<?> math = Class.forName("java.lang.Math"); Method sinus = math.getMethod("sin", double.class); Method cosinus = math.getMethod("cos", double.class); double valeur = Math.PI/2; double resultat_sin = appel(sinus,valeur); double resultat_cos = appel(cosinus,valeur); System.out.println(resultat_sin); // 1.0 System.out.println(resultat_cos); // 0.0 } private static double appel(Method methode, double valeur) throws Exception { return (double) methode.invoke(null,valeur); } }La confiance n'exclut pas le contrôle
19 juil. 2013 à 13:39
problème résolu :)