probleme de variables global-locales en Java

probleme de variables global-locales en Java - Matériels & problèmes divers - Hardware

Marsh Posté le 20-08-2009 à 00:15:56    

Bonjour a tous.je me prends la tete depuis 3jrs sur un pb de var global-locale en java. J'ai ecrit un code java(ci-joint) qui communiq avec prolog, via jpl et tout semble bien se passer. Je pense qu'il n'est pas necessaire d'entrer a fond dans le code pour m'aider...  
ce code repond a une requete specifique; mon code semble bon,sauf qu'il m'affiche dans la console ceci:
% D:/workspace/conflictDetector/src/fam compiled 0.00 sec, 2,720 bytes
consult('D:/workspace/conflictDetector/src/fam') succeeded
X = null
X = null
Test 2
cela signifie qu'en sortant de run1(),il ecrase X, ce qui est normal,puisque une var declare dans une fonction n'existe que pdt l'exe.de la fonction.
CODE:
 
import jpl.*;
 
import java.util.Hashtable;
 
public class Test2 {
//private static Variable X = new Variable();  
 
 /**
  * @param args
  */
 public Test2(){
   
 }
 
   public void run(){
   
  // Test2 Test =new Test2();
  try
  {
   /* String t1 = "consult"(["fam.pl"]);  
    Query q1 = new Query(  
     "consult",  
     new Term[] {new Atom("['fam.pl']" )});  
   boolean  t2 = (q1.query());    
   System.out.println( t1 + "test " + t2);*/
     
    String t1 = "consult('D:/workspace/conflictDetector/src/fam')";
    Query q1 = new Query(t1);
          System.out.println( t1 + " " + (q1.hasSolution() ? "succeeded" : "failed" ) );
  }  
  catch(Exception e)
  {
   System.out.println("erreur  " + e.toString());
   return;
  }
   }
 public void run1(){
   Variable X = new Variable();
  Term args[] = { X, new Atom("joe" )};
  Query q4 =  
   new Query(  
    "child_of",  
    args);  
  java.util.Hashtable[] solutions = q4.allSolutions();  
  for ( int i=0 ; i< solutions.length ; i++ ) {  
  System.out.println( "X = " + (solutions[i].get(X)));  
  }
   
        System.out.println(" Test" + " " + solutions.length);  
   
   
   
         
         
   
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Test2 Test = new Test2();
    Test.run();
    Test.run1();
       
 
 }
 
}
 
 
 
 
 
Qyestion?je sais que je dois m'arranger a avoir une var globale, mais depuis trois jours, je galere, j'ai tout tente et je ne sais plus quoi faire? si quelqu'un a une idee, qu'il n'hesite pas a m'aider.
Merci et a bientot.

Reply

Marsh Posté le 20-08-2009 à 00:15:56   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed