2010-04-17 9 views
0

J'ai une classe avec la déclaration suivante des champs:Pourquoi un "statique privé" n'est pas vu dans une méthode?

public class Game { 
private static String outputFileName; 
.... 
} 

I définir la valeur de la outputFileName dans la méthode main de la classe. J'ai également une méthode write dans la classe qui utilise le outputFileName. J'appelle toujours write après main définit la valeur pour outputFileName. Mais write ne voit toujours pas la valeur du outputFileName. Il dit que c'est égal à null.

Quelqu'un pourrait-il me dire ce que je fais de mal?

AJOUTÉE Comme il est demandé que je posterai plus de code:

Dans la principale:

String outputFileName = userName + "_" + year + "_" + month + "_" + day + "_" + hour + "_" + minute + "_" + second + "_" + millis + ".txt"; 
    f=new File(outputFileName); 
     if(!f.exists()){ 
     try { 
      f.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    }    
    System.out.println("IN THE MAIN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); 
    System.out.println("------>" + outputFileName + "<------"); 

Cette ligne me transmet le nom du fichier.

Que dans le write je:

public static void write(String output) { 
    // Open a file for appending. 
    System.out.println("==========>" + outputFileName + "<============"); 
     ...... 
} 

Et sorties nulle.

+0

cela devrait fonctionner, pouvez-vous poster plus de code s'il vous plaît? – oedo

+1

Je suppose que ce serait plus facile si vous avez posté votre code complet. Coupez-le au fichier minimum montrant votre problème. –

Répondre

3

On dirait que vous avez une variable locale ou un paramètre du même nom

+0

Vous avez raison. J'avais besoin de supprimer 'String' avant le nomFichierSortie dans la méthode' main'. Merci! – Roman

3

sur la première ligne de votre main Code

String outputFileName = ... 

a besoin d'être

outputFileName = ... 

sinon vous re en créant un nouveau, local, nommé outputFileName, et le private static n'est pas touché.

Questions connexes