Nested Class

Résolu
Signaler
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Salut:

J'ai un problème avec les classes innés.

public void login () {
    final boolean state;
   
    Service service = new Service () {
       public void onSuccess (Object o) {
          state = ((Boolean)o).booleanValue ();
       }
    };
}

Le compilateur (Eclipse) réfuse l'instruction en rouge et il affiche ceci:

The final local variable bool cannot be assigned, since it is defined in an enclosing type.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts

7 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Je pense que je vais faire le tout dans la méthode vu que les méthodes de ma classe sont visibles dans la classe innée.

C'est le fait que ce service asynchronne qui complique les choses sinon ajouter un attribut suffira.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

J'ai essayé pour surmonter ce problème d'ajouter un attribut state à l'intérieur de ma classe inné avec avec des setter/getter, ça se compile mais çe ne me donne pas le résultat souhaitable, en fait je développe un service asynchronne avec AJAX, et je ne sais pas pourquoi la valeur de l'attribut state ne change pas après appel de ce service, il renvoye toujours la valeur par défaut false bienque je la met toujours à true.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Mes camarades ce que je veux c'est comment corriger l'erreur syntaxique.


public void login () {
    final boolean state;
   
    Service service = new Service () {
       public void onSuccess (Object o) {
          state = ((Boolean)o).booleanValue ();
       }
    };
}

Le compilateur (Eclipse) réfuse l'instruction en rouge et il affiche ceci:

The final local variable bool cannot be assigned, since it is defined in an enclosing type.

Et merci infiniment.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

completement oki avec l'erreur tu changes dans l'objet Service la référence sur ta variable (ou classe) 'final boolean state' alors qu'elle est dîte 'final'.........voir la portée de la var.....

------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Si je ne mets pas final ma variable devient inaccessible dans la classe inné.

J'ai modifié:

final boolean state;

par:

boolean state;

Et j'ai obtenu ce message d'erreur:

Cannot refer to a non-final variable bool inside an inner class defined in a different method


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
37
Salut:

Tu vois c'est une question de portée d'une variable.

Et pire que ça la méthode de l'interface que je dois implémenter ne retourne rien.


________________________________________________________________________________
A.B. : 
"Dieu nous donne des mains, mais il ne bâtit pas les ponts
Messages postés
5366
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
6 décembre 2021
111
Salut,

sort ta variable de la méthode login ou trouve une autre façon de faire

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA