Pb No enclosing instance

Pb No enclosing instance - Java - Programmation

Marsh Posté le 18-05-2005 à 15:19:14    

Je bosse sous eclipse.
 
J'ai un problème lorsque que je veut creer des objets qui decoulent de classes abstraites, et jarrive pas a voir d'ou vien le pb.
 
"No enclosing instance of type Action is accessible. Must qualify the allocation with an enclosing instance of Type Action (e.g. x.new A() where x is an instance of Action)"

Reply

Marsh Posté le 18-05-2005 à 15:19:14   

Reply

Marsh Posté le 18-05-2005 à 16:07:54    

un peu de code serait la bienvenue :)
 
j'espere que tu n'essaies pas de créer un objet sur une classe abstraite...

Reply

Marsh Posté le 19-05-2005 à 08:53:38    

Code :
  1. public abstract class Option {
  2.     public enum TypeOption {
  3.         Some, None
  4.     }
  5.     public Object o;
  6.     public abstract TypeOption getType();
  7.     public class Some extends Option {
  8.         public Some(Object _o) {
  9.             super.o = _o;
  10.         }
  11.         public TypeOption getType() {
  12.             return TypeOption.Some;
  13.         }
  14.     }
  15.     public class None extends Option {
  16.         public None() {
  17.             super();
  18.         }
  19.         public TypeOption getType() {
  20.             return TypeOption.None;
  21.         }
  22.     }
  23. }


 
Le problème intervient quand j'essaye de creer un objet None ou Some.

Reply

Marsh Posté le 19-05-2005 à 10:20:39    

on peut voir la ligne à laquelle il te dit qu'il y a une erreur ?
 
d'autre part, les histoires d'instance englobante n'ont rien à voire avec les classes abstraites, mais avec les classes internes.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-05-2005 à 10:44:12    

il n'y a pas d'erreur dans ce code
 
j'ai une erreur quand par exemple je fait "Option a = new Option.None()"

Reply

Marsh Posté le 19-05-2005 à 10:46:55    

ok, si tu veux l'utiliser comme ça, il faut que tu mettes :

Code :
  1. public static class None extends Option {


 
static, ça veux dire que None est une classe normale, simplement, elle est dans l'espace de nom de Option.
 
sans le static, ça veut dire que toute instance de None se trouve dans une instance de Option.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 19-05-2005 à 11:43:27    

ok merci nickel ;)

Reply

Sujets relatifs:

Leave a Replay

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