probleme de variables global-locales en Java
            probleme de variables global-locales en Java - Matériels & problèmes divers - Hardware
         
        
            
                
											
					
	     
							 
					
					
	     
							 
Sujets relatifs:
                        
                            
                            
                                Leave a Replay
                                Make sure you enter the(*)required information where indicate.HTML code is not allowed
                              
      
                                 
                         
                     
                     
             
          
    
   
	 
    
	
 
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... workspace/conflictDetector/src/fam compiled 0.00 sec, 2,720 bytes
workspace/conflictDetector/src/fam compiled 0.00 sec, 2,720 bytes  workspace/conflictDetector/src/fam') succeeded
workspace/conflictDetector/src/fam') succeeded 
 workspace/conflictDetector/src/fam')";
workspace/conflictDetector/src/fam')"; 
ce code repond a une requete specifique; mon code semble bon,sauf qu'il m'affiche dans la console ceci:
% D
consult('D
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
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.