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 :

Accès global aux arguments


Sujet :

avec Java

  1. #1
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut Accès global aux arguments
    Bonjour,

    Je n'arrive pas à accéder/modifier certaines variables de mon programme java :

    Voici la structure globale de mon 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
     
    public class MaClassePrincipale {
     
    	private static final String CHAINE_MODE1_1 = "11";
    	private static final String CHAINE_MODE1_2 = "12";
     
    	private static final String CHAINE_MODE2_1 = "21";
    	private static final String CHAINE_MODE2_2 = "22";
     
    	private static String chaine_mode_1;
    	private static String chaine_mode_2;
     
    	public static class MaClasseStatique1
    		{
     
    		public void MaFonction1()
            throws IOException, InterruptedException 
            	{
    			//CODE
    			}
    		}
     
    	public static class MaClasseStatique2
    		{
     
    		public void MaFonction2()
            throws IOException, InterruptedException 
            	{
    			//CODE
            	}
    		}
     
    	public static void main(String[] args) throws Exception 
    		{
    		if ( args[0].CompareTo("mode1") == 0 )
    			{
    			chaine_mode_1=CHAINE_MODE1_1;
    			chaine_mode_2=CHAINE_MODE1_2;
    			}
    		else
    			{
    			chaine_mode_1=CHAINE_MODE2_1;
    			chaine_mode_2=CHAINE_MODE2_2;
    			}
     
                    Job job = new Job(FConf, "monjob");
    		job.setJarByClass(MaClassePrincipale.class);
    		job.setMapperClass(MaClasseStatique1.class);
    		job.setReducerClass(MaClasseStatique2.class);
    		job.setOutputKeyClass(Text.class);
    		job.setOutputValueClass(IntWritable.class);
     
    		FileInputFormat.addInputPath(job, new Path(FInputPath));
    		FileOutputFormat.setOutputPath(job, new Path(FOutputPath));
    		System.exit(job.waitForCompletion(true) ? 0 : 1);
    		}
    	}
    La valeur de chaine_mode_1 et chaine_mode_2 dans MaFonction1 et MaFonction2 sont null, il y a une subtilité que je n'ai pas compris, pourriez vous m'expliquer pourquoi svp?

    Merci d'avance!
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  2. #2
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    je ne vois pas comment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (args[0].CompareTo("mode1")
    peut se compiler ....
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    non seulement ton code ne compile pas dans le main, mais en plus on ne vois pas comment tes fonctions sont appelée -> difficile de te dire pourquoi c'est null lors de l'appel

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    je ne vois pas comment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (args[0].CompareTo("mode1")
    peut PAS se compiler ....
    pour que ça compile il faut au moins écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            ...
            if (args[0].compareTo("mode1") == 0) {
            ...
    }
    Après on peut discuter ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 795
    Points : 1 685
    Points
    1 685
    Par défaut
    euh...

    Le java n'est pas un langage fonctionnel, c'est un langage orienté objet!
    On parle alors plus de fonctions mais de méthodes.

    De plus ton programme fait deux affectations pas plus!!

    Comment fait-tu les appels des méthodes MaFonction1 et MaFonction2 sans créer d'instance de tes objets internes??
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  6. #6
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut
    j'ai oublié compareto()==0 ca va!
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  7. #7
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut
    Dans le main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Job job = new Job(FConf, "monjob");
    job.setJarByClass(MaClassePrincipale.class);
    job.setMapperClass(MaClasseStatique1.class);
    job.setReducerClass(MaClasseStatique2.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
     
    FileInputFormat.addInputPath(job, new Path(FInputPath));
    FileOutputFormat.setOutputPath(job, new Path(FOutputPath));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
    Je ne sais pas comment elles sont appellées justement ce que je sais c'est que je n'arrive pas à passer des arguments dans ces "méthodes"
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  8. #8
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Nepomucène: je confirme la tournure de phrase "je ne vois pas comment xxxx peut se compiler" .....
    effectivement l'expression ne peut PAS se compiler ... donc ma phrase est parfaitement correcte
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  9. #9
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut
    Mais a partir du moment ou chaine_mode_1 est statique, je ne comprend pas pourquoi je ne peux pas y accéder de n'importe ou dans le code pour lire/écrire....

    En fait pour ceux qui connaissent je cherche le meme principe que le var dans l'interface en delphi...
    J'vais quand meme pas aller écrire dans un fichier pour ca, doit y avoir moyen mais je trouve pas
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  10. #10
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803
    Par défaut
    Je ne sais pas comment elles sont appellées justement
    Je ne voudrais pas être désagréable, et encore moins vexant, mais quelles sont tes connaissances en programmation ? Quelles sont les docs que tu as lues sur Java ?

    Afin que nous puissions mieux comprendre ce que tu sais, il serait pratique que nous sachions quelles sont tes sources, pour pouvoir t'indiquer des docs qui contiennent ce que tu ne sais pas.
    Sans danger si utilisé conformément au mode d'emploi.

    (anciennement BenWillard, enfin moins anciennement que ... enfin bon c'est une longue histoire... Un genre de voyage dans le temps...)

  11. #11
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut Tu n'es pas désagréable
    Je suis développeur delphi, je connais un peu java, j'ai lu pas mal de docs.

    En gros je suis pas en train de vous dire les mecs j'y arrive pas faite sle boulot à ma place, je suis pas un noob qui a fait 3 lignes de code, je suis pas non plus enstein et je ne connais pas tout.

    Je tente en ce moment d'exécuter des map reduce sur mon cluster hadoop, ces map reduce codés en java, et je vous rassure, j'y arrive très bien!

    Mais dans un soucis de confort et de curiosité, j'aimerai pouvoir dire a mon programme mode 1,2,3,... sans avoir a recompiler à chaque fois suivant les versions de map reduce que je souhaite effectuer.

    J'ai déja utilisé ces variables statiques, j'ai cherché sur le net et partout il est indiqué de faire comme ca, j'ai monitoré mes variables dans le main et la valeur est bonne mais dans ces méthodes statiques du mapréduce il n'y a pas moyen de les transmettre!

    Pourtant, si je déclare une constante (final), la j'y accède bien.

    Donc je souhaiterai comprendre et effectivement je voulais synthétiser ma demande mais c'est clair que je l'ai peut etre un peu trop synthétisée.
    L'inconnu c'est l'appel de ces méthodes c'est eptu etre de ce coté la qu'il faut chercher ou pas, j'ai peu etre loupé un truc tout bete, d'ou mon post, car je ne suis pas spécialiste en java
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  12. #12
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Citation Envoyé par professeur shadoko Voir le message
    Nepomucène: je confirme la tournure de phrase "je ne vois pas comment xxxx peut se compiler" .....
    effectivement l'expression ne peut PAS se compiler ... donc ma phrase est parfaitement correcte
    Ah oui désolé, je n'avais pas vu le montage.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  13. #13
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Citation Envoyé par donnadieujulien Voir le message
    Mais a partir du moment ou chaine_mode_1 est statique, je ne comprend pas pourquoi je ne peux pas y accéder de n'importe ou dans le code pour lire/écrire....

    En fait pour ceux qui connaissent je cherche le meme principe que le var dans l'interface en delphi...
    J'vais quand meme pas aller écrire dans un fichier pour ca, doit y avoir moyen mais je trouve pas
    Tu nous dis ne pas pouvoir accéder aux variables chaine_mode_1 et chaine_mode_2. A tous les coups c'est un bête problème de visibilité.
    Poste le code où tu essayes de récupérer ces variables pour qu'on te dise où est le problème de "visibilité" des variables.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #14
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut voici, mais bon je doute que ca soit un problème de visibilité
    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
    public class MaClassePrincipale {
     
    	private static final String CHAINE_MODE1_1 = "11";
    	private static final String CHAINE_MODE1_2 = "12";
     
    	private static final String CHAINE_MODE2_1 = "21";
    	private static final String CHAINE_MODE2_2 = "22";
     
    	private static String chaine_mode_1;
    	private static String chaine_mode_2;
     
    	public static class MaClasseStatique1
    		{
     
    		public void MaFonction1()
            throws IOException, InterruptedException 
            	{
    			//CODE
                           System.out.println(chaine_mode_1); 
                           //->> affiche null
                           System.out.println(chaine_mode_2);
                           //->> affiche null
    			}
    		}
     
    	public static class MaClasseStatique2
    		{
     
    		public void MaFonction2()
            throws IOException, InterruptedException 
            	{
    			//CODE
                           //->> affiche null
                           System.out.println(chaine_mode_1);
                           //->> affiche null
                           System.out.println(chaine_mode_2);
            	}
    		}
     
    	public static void main(String[] args) throws Exception 
    		{
    		if ( args[0].CompareTo("mode1") == 0 )
    			{
    			chaine_mode_1=CHAINE_MODE1_1;
    			chaine_mode_2=CHAINE_MODE1_2;
    			}
    		else
    			{
    			chaine_mode_1=CHAINE_MODE2_1;
    			chaine_mode_2=CHAINE_MODE2_2;
    			}
     
                    Job job = new Job(FConf, "monjob");
    		job.setJarByClass(MaClassePrincipale.class);
    		job.setMapperClass(MaClasseStatique1.class);
    		job.setReducerClass(MaClasseStatique2.class);
    		job.setOutputKeyClass(Text.class);
    		job.setOutputValueClass(IntWritable.class);
     
    		FileInputFormat.addInputPath(job, new Path(FInputPath));
    		FileOutputFormat.setOutputPath(job, new Path(FOutputPath));
    		System.exit(job.waitForCompletion(true) ? 0 : 1);
    		}
    	}
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  15. #15
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Ou là là ...
    à aucun endroit je ne vois un appel à la fonction MaFonction1() ou MaFonction2().
    tu récupères la classe MaClasseStatique1 pour la mettre dans job mais elle n'est pas instanciée
    (ou alors dans job peut-être ?)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  16. #16
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ouaip. Cette classe Job sort de nulle part, on ne la connaît pas, on sait pas ce que c'est. Elle fait probablement quelque chose qui n'est pas censé permettre ce que tu essaies de faire.

    Mais de toute façon, ça ne sert à rien de demander de l'aide sans nous montrer les classes non-standard que tu utilises.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut
    oui surement dans job, mais la c'est les méthodes du plugin hadoop, pour l'instant je ne sais pas ce qu'il y a dans ces méthodes, mais je ne comprend pas pourquoi on devrait se soucier de comment c'est fait/appelé, puisque ma variable est statique, donc théoriquement accessible partout????
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  18. #18
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par donnadieujulien Voir le message
    oui surement dans job, mais la c'est les méthodes du plugin hadoop, pour l'instant je ne sais pas ce qu'il y a dans ces méthodes, mais je ne comprend pas pourquoi on devrait se soucier de comment c'est fait/appelé, puisque ma variable est statique, donc théoriquement accessible partout????
    Parce que Hadoop est un framework de cloud computing et a donc pour principe de répliquer les données nécessaires au travail d'un nœud à l'autre, ce qui est complètement contradictoire avec la notion de static qui ne concerne bien sûr que l'application en cours et pas toutes les applications de tous les ordinateurs du monde.

    On peut raisonnablement supposer, et le fait qu'il soit configuré avec des .class le confirme, que Hadoop s'assure qu'il ne travaille qu'avec des objets disposant des mêmes conditions de démarrage sur tous les nœuds, et charge donc les classes dans un ClassLoader spécialisé, ce qui a pour effet de charger une nouvelle vision des classes qui avaient déjà été chargée, et dont les variables statiques n'ont jamais été touchées par la méthode main().

    Bref, si on fait du distribué, le premier principe de base est que static n'existe pas. Il vaut mieux définir un objet global qui contient toutes les données globales que tu veux, et qui sera sûrement répliqué.
    Enfin, tout ça c'est de l'apprentissage de Hadoop, pas de Java.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  19. #19
    Membre habitué Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Points : 191
    Points
    191
    Par défaut
    ah ouais, pas mal, d'accord, en fait il faut que j'envoie la classe selon l'argument passé en prm!
    Merci beaucoup!
    Je vais tester dans la journée
    On ne peut créér ce qu'on ne peut imaginer...
    Tu sens la puissance du BIT?

  20. #20
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    bon j'ai pas regardé les codes mais une petite mise en garde:
    en Java il n'y a pas de variable globale...
    oui même un truc static n'est pas global: c'est une variable partagée au sein d'un ClassLoader.
    Si par malheur tu fais appel à un code qui utilise au autre ClassLoader les variables static n'auront pas les mêmes valeurs ...
    Bon je doute que ça soit le problème ... mais c'est juste pour dire qu'il vaut mieux éviter des conceptions avec des variables globales qui se modifient dans la vie du programme.

    edit: quasi grilled
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 18
    Dernier message: 13/04/2007, 12h48
  2. Réponses: 10
    Dernier message: 07/06/2006, 12h56
  3. [TOMCAT] Comment empêcher l'accès direct aux fichiers
    Par thomine dans le forum Tomcat et TomEE
    Réponses: 17
    Dernier message: 14/04/2005, 10h19
  4. [VB.NET] Accès concurrentiel aux fichiers
    Par david71 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/12/2004, 11h19
  5. Accés rapide aux propriétés d'un Objet
    Par Alacazam dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/11/2002, 21h56

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