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

avec Java Discussion :

Output capricieux : [D@1ca3a29 kézako ?!


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut Output capricieux : [D@1ca3a29 kézako ?!
    Bonjour !



    Je suis en stage actuellement dans une boite d'architecture environnementale pour laquelle je developpe un logiciel de simulation thermique en java. Je simule donc convection, rayonnement et tout ce qui s'en suit.

    Ce qui me laisse perplexe, c'est l'output que JCreator me renvoie lorsque je lance la simultation. Je procède par lancers de rayons successifs pour simuler le rayonnement solaire direct, et visiblement, c'est à chaque "création" ou "re-création" de rayon que j'obtiens une ligne de ce type dans l'output :
    [D@1ca3a29

    Ce n'est pas grand chose, mais le problème, c'est que vu le nombre de rayons que je lance, je me retrouve avec des milliers de lignes absolument inutiles qui ralentissent certainement beaucoup mon programme deja pas bien optimal!! Sans parler du fait que c'est frustrant de ne pas controler ce que mon programme me renvoie!!

    Si l'un de vous sait d'ou vient cette ligne mystère, ca me dépannerait bien !!!!



    Lydia

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Ceci correspond à l'affichage d'un tableau de double... donc à toi de vérifier ton code !

    a++

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Salut!

    Jai vérifié encore une Nième fois, je nai aucune ligne System.out.println involontaire....! Je n'ai meme pas de tableau de doubles dans mes rayons!

    Par contre jai des tableaux de doubles (sous forme de matrices) pour garder en memoire le nombre de rayons absorbé par chaque element de ma geométrie...
    Est-ce possible que ce soit en mettant à jour les éléments de cette matrice que le programme me renvoie automatiquement une ligne?

    Je suis encore plus perdue!!
    Si tu veux bien encore me donner une piste....

    Merci!!!

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par hazyscl Voir le message
    Je n'ai meme pas de tableau de doubles dans mes rayons!

    Par contre jai des tableaux de doubles (sous forme de matrices)
    Tu te contredis un peu là non ?

    Citation Envoyé par hazyscl Voir le message
    Est-ce possible que ce soit en mettant à jour les éléments de cette matrice que le programme me renvoie automatiquement une ligne?
    Il n'y a rien de magique : si cela s'affiche sur la console, ca signifie que c'est ton code ou une des API que tu utilises qui le fait...

    Perso je ne pense pas que cela viennent des APIs standard




    Sinon rajoute ceci au démarrage de ton application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	System.setOut(new PrintStream(System.out) {
    		@Override
    		public void println(Object obj) {
    			super.println(obj);
    			if (obj instanceof double[]) {
    				new Throwable().printStackTrace();
    			}
    		}
    	});
    Tu devrais obtenir un stacktrace lorsque le tableau est affiché...

    (attention à ne pas conserver ceci en prod !)


    a++

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Merci !!!

    Je vais essayer avec les lignes de codes que tu m'as donné pour comprendre, mais jai réussi à faire disparaitre ces lignes...

    Quand je dis que je nai pas de tableau de doubles dans mes rayons, c'est que la ligne saffiche a chaque creation de rayon alors qu'aucun tableau de double n'est en jeu a ce moment là. Par contre je joue avec des tableaux à dautres moments mais qui ne correspondent pas.

    J'ai réussi a faire disparaitre les lignes en evitant des initialisations répétées qui sont en réalité identiques. Je ne sais pas pourquoi c'etait lié, mais je ne vais pas m'en plaindre!! Je n'ai plus qu'une seule de ces lignes, et cest deja super!!

    Par contre si ton code maide a la supprimer, ce sera encore mieux!!! Merci infiniment!

    Lydia

  6. #6
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour,
    Citation Envoyé par hazyscl Voir le message
    Par contre si ton code maide a la supprimer, ce sera encore mieux!!! Merci infiniment!
    Le code d'adiGuba ne vas pas supprimer ces affichachages, mais agit plus comme un mouchard qui t'imprime le stackTrace (pile d'appel) quand une instruction essaie d'imprimer un tableau de doubles.

    A toi de vérifier l'output après l'exécution pour localiser l'instruction qui faisait celà.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 46
    Par défaut
    Trouvé !!!
    Tu avais raison, javais une impression de tableau de double dans cette initialisation... un oubli de débuggage... d'ou le fait de supprimer a réinitialisation qui supprime les milliers de ligne en en laissant qu'une seule.
    Jaurais appris qqc, merci encore! Je vais garder ces qq lignes de codes précieusement dans un coin !

    Bien à toi,
    Lydia

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. <xsl:output method="text">
    Par Sylvain James dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/02/2005, 14h51
  2. Procedure stockée avec un parametre en OUTPUT
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2004, 20h06
  3. Renvoyer un OUTPUT de plusieurs types
    Par omlip dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/08/2004, 10h44
  4. Login capricieux
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 30/04/2003, 01h46

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