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...
ce code repond a une requete specifique; mon code semble bon,sauf qu'il m'affiche dans la console ceci:
% Dworkspace/conflictDetector/src/fam compiled 0.00 sec, 2,720 bytes
consult('Dworkspace/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('Dworkspace/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.