Bonjour.
J'utilise la réflexion pour accéder à une méthode de la classe de myInstance
puis j'invoque cette méthode :
Object myObject = myMethod.invoke(myInstance, null);
Or myMethod retourne normalement un double.
Comment récupérer ce double encapsulé dans myObject ?
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nioubi
JFA wrote:
Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Bonjour,
puisque le type effectif est connu a priori, on peut caster puis prendre la valeur en type primitif :
double result = ((Double)myObject).doubleValue();
Dans d'autres cas, si le type retourné peut varier selon l'appel, on pourrait sans doute tester par instanceof.
JFA wrote:
Object myObject = myMethod.invoke(myInstance, null);
Or myMethod retourne normalement un double.
Comment récupérer ce double encapsulé dans myObject ?
Bonjour,
puisque le type effectif est connu a priori, on peut caster puis
prendre la valeur en type primitif :
double result = ((Double)myObject).doubleValue();
Dans d'autres cas, si le type retourné peut varier selon l'appel, on
pourrait sans doute tester par instanceof.
Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Bonjour,
puisque le type effectif est connu a priori, on peut caster puis prendre la valeur en type primitif :
double result = ((Double)myObject).doubleValue();
Dans d'autres cas, si le type retourné peut varier selon l'appel, on pourrait sans doute tester par instanceof.
Laurent Bossavit
Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ?
Effectuer un "cast" ou transtypage: Double doubleResult = (Double)myObject;
puis récupérer la valeur: double result = doubleResult.doubleValue();
En Java 1.5, avec le "unboxing" automatique, il devrait être possible d'exprimer ce mécanisme plus succintement.
Laurent
Or myMethod retourne normalement un double.
Comment récupérer ce double encapsulé dans myObject ?
Effectuer un "cast" ou transtypage:
Double doubleResult = (Double)myObject;
puis récupérer la valeur:
double result = doubleResult.doubleValue();
En Java 1.5, avec le "unboxing" automatique, il devrait être possible
d'exprimer ce mécanisme plus succintement.
Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ?
Effectuer un "cast" ou transtypage: Double doubleResult = (Double)myObject;
puis récupérer la valeur: double result = doubleResult.doubleValue();
En Java 1.5, avec le "unboxing" automatique, il devrait être possible d'exprimer ce mécanisme plus succintement.
Laurent
Jocelyn
Salut, Voici ce que dit la doc de la methode invoke: ...if the value has a primitive type, it is first appropriately wrapped in an object... Donc tu dois recuperer un objet Double, grace auquel tu accedes a ta valeur primitive. ++
Bonjour. J'utilise la réflexion pour accéder à une méthode de la classe de myInstance puis j'invoque cette méthode : Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Merci
Salut,
Voici ce que dit la doc de la methode invoke:
...if the value has a primitive type, it is first appropriately wrapped
in an object...
Donc tu dois recuperer un objet Double, grace auquel tu accedes a ta
valeur primitive.
++
Bonjour.
J'utilise la réflexion pour accéder à une méthode de la classe de myInstance
puis j'invoque cette méthode :
Object myObject = myMethod.invoke(myInstance, null);
Or myMethod retourne normalement un double.
Comment récupérer ce double encapsulé dans myObject ?
Merci
Salut, Voici ce que dit la doc de la methode invoke: ...if the value has a primitive type, it is first appropriately wrapped in an object... Donc tu dois recuperer un objet Double, grace auquel tu accedes a ta valeur primitive. ++
Bonjour. J'utilise la réflexion pour accéder à une méthode de la classe de myInstance puis j'invoque cette méthode : Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Merci
Nico
Ce que je ferai:
Double monDouble = null;
try { monDouble = (Double)myMethod.invoke(myInstance, null); } catch (ClassCastException { //pb : le retour de la méthode ne peut être casté en Double }
Attention, j'ai bien mis Double (ie: java.lang.Double) et pas le type double.
JFA wrote:
Bonjour. J'utilise la réflexion pour accéder à une méthode de la classe de myInstance puis j'invoque cette méthode : Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Merci
Ce que je ferai:
Double monDouble = null;
try
{
monDouble = (Double)myMethod.invoke(myInstance, null);
}
catch (ClassCastException
{
//pb : le retour de la méthode ne peut être casté en Double
}
Attention, j'ai bien mis Double (ie: java.lang.Double) et pas le type
double.
JFA wrote:
Bonjour.
J'utilise la réflexion pour accéder à une méthode de la classe de myInstance
puis j'invoque cette méthode :
Object myObject = myMethod.invoke(myInstance, null);
Or myMethod retourne normalement un double.
Comment récupérer ce double encapsulé dans myObject ?
Merci
try { monDouble = (Double)myMethod.invoke(myInstance, null); } catch (ClassCastException { //pb : le retour de la méthode ne peut être casté en Double }
Attention, j'ai bien mis Double (ie: java.lang.Double) et pas le type double.
JFA wrote:
Bonjour. J'utilise la réflexion pour accéder à une méthode de la classe de myInstance puis j'invoque cette méthode : Object myObject = myMethod.invoke(myInstance, null); Or myMethod retourne normalement un double. Comment récupérer ce double encapsulé dans myObject ? Merci