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

Concurrence et multi-thread Java Discussion :

[Thread]probleme de portée


Sujet :

Concurrence et multi-thread Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut [Thread]probleme de portée
    Salut,

    Actuellement j'ai un programme qui suit cette architecture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class XML
    {
      (...)
      public static void main(String []args)
      {
        String s="monFichier.xml";
        XML t=new XML();
        t.faireCeci(monXML);
        t.deleteXML(s);
      }
    }
    Je voudrais faireCeci() avec un Thread :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    new Thread(
      new Runnable()
        {
        public void run()
        {
          t.deleteXML(s);
        }
      }
    ).start();
    Mais je me retrouve avec deux erreurs à la compilation :
    Local variable t is accessed from within inner class. Should be declared final.
    Local variable s is accessed from within inner class. Should be declared final.
    Le seul probleme c'est que j'effectue des traitements avant de faire ces opérations...

    Merci d'avances pour vos réponses

    Fred

  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,


    Tu as la réponse dans le message d'erreur : pour être accéssible depuis une inner-classe, les variables doivent être déclaré final afin de garantir au compilateur que leurs références ne changeront pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static void main(String []args)
    {
        final String s="monFichier.xml";
        final XML t=new XML();
     
        t.faireCeci(monXML);
        t.deleteXML(s);
     
        new Thread() {
            public void run() {
                t.deleteXML(s);
            }
        }.start();
    }
    Au passage tu n'a pas besoin de faire une double inner-classe new Thread/new Runnable...

    a++

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    suis-je bête :-x J'avais hésité à déclarer en final car j'effectuais des traitements sur ma String

    Fred

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

Discussions similaires

  1. [Thread] Probleme avec mon Timer
    Par Nico66 dans le forum EDT/SwingWorker
    Réponses: 10
    Dernier message: 02/06/2005, 17h10
  2. [Débutant][Threads] Problème de synchronisation
    Par sephile dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 02/01/2005, 23h29
  3. [THREAD] probleme de pipe
    Par mehdiyassin dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 01/07/2004, 13h50
  4. Thread Probleme pour l'arret
    Par Raideman dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/04/2004, 12h17
  5. [debutant]servlet probleme de port
    Par noOneIsInnocent dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 04/09/2003, 16h33

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