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

Langage Java Discussion :

des messages d'erreurs avec mon code


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut des messages d'erreurs avec mon code
    salut j'ai des message d'erreur et je ne sais plus comment les enlever puis executer mon code avec les thread voila le code
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
     
    package aa;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.io.*;
    import java.sql.*;
     
     
    class thread1
     {
     
       public static ArrayList methode() {
        ArrayList A = new ArrayList();
     
     
        Thread m1_IOThread = null;
        Thread m2_IOThread = null;
        Thread ATTEND = null;
     
     
     
           if (m1_IOThread == null) {
             m1_IOThread = new Thread() {
               public void run() {
                 try {
                   ArrayList s = calcule.methode();
                   System.out.println(s);
                 }
                 catch (Exception ex) {
                   System.out.println(ex);
                 }
     
               }
     
             };
             m1_IOThread.setPriority(Thread.MIN_PRIORITY);
             m1_IOThread.start();
           }
     
           if (m2_IOThread == null) {
             m2_IOThread = new Thread() {
               public void run() {
                 try {
                   ArrayList s = calcule.methode();
                   System.out.println(s);
                 }
                 catch (Exception ex) {
                 }
     
               }
             };
             m2_IOThread.setPriority(Thread.MIN_PRIORITY);
             m2_IOThread.start();
           }
     
           if (ATTEND == null) {
             ATTEND = new Thread() {
               public void run() {
                 while ( (m1_IOThread != null) && (m2_IOThread != null))
                        {
                   try {
                     this.sleep(100);
                   }
                   catch (Exception G) {}
                 }
     
                 ATTEND = null;
               }
             };
             ATTEND.setPriority(Thread.MIN_PRIORITY); // UI has most priority
             ATTEND.start();
           }
     
     
     
     
     
         return (A);
       }
     }

    et les trois message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "thread1.java": local variable m1_IOThread is accessed from within inner class; needs to be declared final at line 62, column 23
    "thread1.java": local variable m2_IOThread is accessed from within inner class; needs to be declared final at line 62, column 48
    "thread1.java": local variable ATTEND is accessed from within inner class; needs to be declared final at line 70, column 14

    les erreurs sur la lignes
    while ( (m1_IOThread != null) && (m2_IOThread != null))
    et la ligne
    ATTEND = null;


    merci de m'avoir m'aider

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Bon réponse un peu bébête quoi, mais il te dis tout simplement de passer tes 3 variables en final enfin rajouter l'attibut final quoi

    Faut savoir lire les messages d'erreurs des fois, même pour un non-anglophone ce message me semble clair...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    final Thread m1_IOThread = null;
    final Thread m2_IOThread = null;
    final Thread ATTEND = null;
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    salut merci pour ton aide mais ça marche pas car j'ai toujours les erreur aprés la modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cannot assign a value to final at lign26 sur la ligne 
    m1_IOThread = new Thread()

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Tu ne peux pas acceder à une variable locale à partir d'une inner class, sauf si celle ci est constante (ie final).

    Il faut que tu changes ta conception :
    1. soit tu définis des classes qui dérivent de Thread avec des attributs, chaque attribut étant initialisé (via le constructeur ou une méthode d'init) avec les variables locales.
    2. soit tu déclares des attributs m1_IOThread, m2_IOThread, etc ... dans ta classe principale.

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    mais je n'ai pas bien tout compris
    dans une autre classe je vais récupérer résultat de cette classe thread1
    par ArrayList A =thread1.methode();

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    630
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 630
    Par défaut
    j'ai trois thread qui font pas le meme progreme
    m1_IOThread et m2_IOThread exixute en parallele et récupérer résultat dans troisiéme thread ATTEND qui récupere résulta des deux thread premiers puis dans une autre classe je voulais récupérer résultat de thread ATTEND de la classe thread1
    par exemlpe la classe ArrayList A= thread1.methode();

    je n'ai pas bien compris pourquoi j'ai des mesages d'erreur

Discussions similaires

  1. message d'erreur dans mon code
    Par linda deb dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2012, 11h37
  2. Affichage des messages d'erreur sur mon serveur
    Par philippe57460 dans le forum Langage
    Réponses: 4
    Dernier message: 25/06/2008, 08h23
  3. Affichage des message d'erreurs avec Struts
    Par stujava dans le forum Struts 1
    Réponses: 4
    Dernier message: 13/08/2007, 21h12
  4. TinyXml des ennuis avec mon code
    Par jalelouss dans le forum XML
    Réponses: 0
    Dernier message: 11/08/2007, 04h23
  5. Réponses: 22
    Dernier message: 28/01/2007, 21h00

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