IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[JNI] : Obtenir les champs d'un objet inclus dans un objet


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [JNI] : Obtenir les champs d'un objet inclus dans un objet
    Bonsoir !
    J'ai un petit souci avec JNI : J'ai un objet dont les champs sont tous des types primitifs sauf un qui est un objet et je ne parviens pas à accéder à ce "sous-objet".



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
    JNIEXPORT void JNICALL Java_MaClasse_MaMethode(JNIEnv *env, jobject obj, jobject monObjet){
     
    jclass class;
    jfieldID fieldID;
    jclass subclass;
    jobject monSousObjet;
    int monEntier;
    ....
     
    /* Recuperation de la classe de monObjet */
    class = (*env)->GetObjectClass(env,monObjet);
     
    /* Recuperation du fieldID du "sous-objet" */
    fieldID = (*env)->GetFieldID(env,class,"mySubObject","Ljava/lang/Object ;");
     
    /* Recuperation du "sous-objet" proprement dit */
    monSousObjet = (*env)->GetObjectField(env,monObjet,fieldID);
     
    /* Recuperation de la classe du "sous-objet" pour acceder à ses champs */
    subclass = (*env)->GetObjectClass(env,monSousObjet);
     
    ...
     
    /* Recuperation d'un champ de type entier de mon sous-objet */
    fieldID = (*env)->GetFieldID(env,subclass,"myInteger","I");
    monEntier = (*env)->GetIntegerField(env,monSousObjet,fieldID);

    Impossible d'accéder à ce "sous-objet" !!!!! Qu'est-ce qui cloche dans mon code ?
    Merci d'avance !

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    A priori dans mon morceau de code, je ne dois pas réussir à récupérer mon "sous-objet" (le jobject récupéré doit être nul) car le programme s'interrompt à l'appel de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    subclass = (*env)->GetObjectClass(env,monSousObjet);
    L'erreur vient-elle du fieldID ???? La signature n'est-elle pas "Ljava/lang/Object ;" ????

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il me semble qu'io n'y a pas d'espace à la fin du nom de la classe : "Ljava/lang/Object;".

    a++

Discussions similaires

  1. Obtenir les champs d'une listbox à partir d'un fichier.
    Par daemon rom dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 21/08/2008, 12h05
  2. Enregistrer les champs et type des dataset dans un fichier
    Par Andry dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/03/2008, 14h09
  3. [Tableaux] Obtenir les champs d'une page web
    Par Oprichnik dans le forum Langage
    Réponses: 5
    Dernier message: 13/05/2007, 20h18
  4. Réponses: 1
    Dernier message: 20/12/2005, 15h56
  5. afficher les champs null de deux tables dans un select
    Par poil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/09/2005, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo