OVH Cloud OVH Cloud

a l'aide ))) eclipse nested type Bottle hides an enclosing type

5 réponses
Avatar
yvon.thoravalNO-SPAM
Bon, là j'ai le message suivant :
Exception in thread "main" java.lang.Error: Unresolved compilation
problem:
Nested type Bottle hides an enclosing type

at yt.db4o.o.Bottle.<init>(Bottle.java:28)
at yt.db4o.t.B1_Set_OneBottle.main(B1_Set_OneBottle.java:43)

avec la classe Bottle suivante :
<CODE>
package yt.db4o.o;
import java.util.Date;

public class Bottle {
public String description;
public Integer vintage;
public Date buyDate;
public Integer buyNumber;
public Float buyPrice;

public class Bottle {
}
}
</CODE>
(il faut un constructeur sans argument, c'est une classe à stocker dans
une bd objet (db4o))

la classe B1_Set_OneBottle, qui remplit un objet bouteille :
<CODE>
package yt.db4o.t;

import java.util.Calendar;
[...]
import yt.db4o.t.AllBottles;
public class B1_Set_OneBottle {
public static void main(String[] args) {
Db4o.configure().messageLevel(-1);
new java.io.File(AllBottles.FILE).delete();
ObjectContainer db = Db4o.openFile(AllBottles.FILE);
Date now = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(now);
cal.add(Calendar.YEAR, -1);
Date lastYear = cal.getTime();
Bottle champagne = new Bottle();
champagne.description = "Rosé des Riceys";
champagne.vintage = new Integer(2000);
champagne.buyDate = lastYear;
champagne.buyNumber = new Integer(6);
champagne.buyPrice = new Float(26.75);

db.set(champagne);
db.commit();

System.out
.println("*** B1 'Rosé des Riceys' is
stored to bottles.yap.");
db.close();
}

}
</CODE>

enfin la classe AllBottles qui ne sert qu'à initialiser le fichier db.
<CODE>
package yt.db4o.t;
public class AllBottles {
public static final String FILE = "bottles.yap";

public static void main(String[] args) {
System.out.println("Le fichier db4o est : " + FILE);
}

}
</CODE>

J'ai l'impression que ce que n'aime pas eclipse c'est le constructeur
vide dans Bottle, pourtant c'est ce genre d'approche qui est utilisée
systématiquement avec cette base de données objet, ici d'ailleurs, je
n'ai fait que suivre, à la lettre, les très nombreux exemples fournis
par les devs de db4o...
--
yt

5 réponses

Avatar
yvon.thoravalNO-SPAM
Yvon Thoraval wrote:


public class Bottle {
}


bon il fallait lire :

public class Bottle {
[...]
public Bottle {
}
}

mais ça ne veut tjs pas compiler (les autres fichiers sont ok pour
éclipse) et le warning est :

Syntax error on token "public", class expected after this token.

d'ailleurs c'est sans doute eclipse qui avait, précédemment ajouté ce
"class" (j'ai fait du copier coller depuis un exemple des devs de db4o)

donc là, je pige pas pourquoi eclipse rale...
--
yt

Avatar
Yogo
"Yvon Thoraval" a écrit:

public class Bottle {
}


bon il fallait lire :

public class Bottle {
[...]
public Bottle {
}
}

mais ça ne veut tjs pas compiler (les autres fichiers sont ok pour
éclipse) et le warning est :

Syntax error on token "public", class expected after this token.

d'ailleurs c'est sans doute eclipse qui avait, précédemment ajouté ce
"class" (j'ai fait du copier coller depuis un exemple des devs de db4o)



public Bottle est le constructeur de la class Bottle. Un constructeur c'est
une méthode, donc il faut écrire:

public Bottle () {
}

Ce qu'eclipse a sûrement dû mettre au départ...

Mais si y a pas de code dans le constructeur on peut aussi bien l'enlever...


Yogo


Avatar
yvon.thoravalNO-SPAM
"Yogo" <n o s p a m> wrote:

public Bottle () {
}

Ce qu'eclipse a sûrement dû mettre au départ...


AH M$*#DE !!!! quelle connerie )))

je suis plié de rire, j'ai vraiment cherché mais pas trouvé les ()...


Merci beaucoup...
--
yt

Avatar
Vincent Cantin
"Yogo" <n o s p a m> wrote:

public Bottle () {
}

Ce qu'eclipse a sûrement dû mettre au départ...


AH M$*#DE !!!! quelle connerie )))

je suis plié de rire, j'ai vraiment cherché mais pas trouvé les ()...


Ils sont sur le clavier pourtant :-)


Avatar
yvon.thoravalNO-SPAM
Vincent Cantin wrote:

Ils sont sur le clavier pourtant :-)


Sous les cachuètes alors ?
--
yt