Incrémentation d'un enum en Java

Incrémentation d'un enum en Java - Java - Programmation

Marsh Posté le 22-12-2004 à 17:46:50    

Salut à tous !
 
J'ai une énumération du type :  
enum LesMois {
    janvier, février, mars, avril, mai, juin, juillet, août, septembre,  
    octobre, novembre, décembre
}
 
 
Comment faire pour ajouter 1 au mois courant. Par exeple si ce dernier est janvier, que ma variable mois prenne la valeur février.
 
 
Merci d'avance
 
P.S : Le passage de décembre à janvier est quant à lui réglé.

Reply

Marsh Posté le 22-12-2004 à 17:46:50   

Reply

Marsh Posté le 22-12-2004 à 18:27:03    

+1 ?
 

Guitariff a écrit :


enum LesMois {
    janvier, février, mars, avril, mai, juin, juillet, août, septembre,  
    octobre, novembre, décembre
}


Aaaarghl


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 18:30:36    

enum n'est pas un type de java...
 
Montre nous un bout de code qu'on comprenne.

Reply

Marsh Posté le 22-12-2004 à 18:56:46    

bidem a écrit :

enum n'est pas un type de java...
 
Montre nous un bout de code qu'on comprenne.


faut sortir un peu mon bon monsieur, ça fait plus d'un an qu'il compile, son code.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 18:58:33    

sircam a écrit :

+1 ?
 
 
Aaaarghl


bah c'est valide. faut juste pas esperer que ça passe chez un japonais [:joce]
 
guitariff > dans un enum, tu peux avoir une "vraie" classes, avec constructeur, variables membres, methodes et tout le toutim; je te laisse réflechir 2 secondes et tu verras que ton pb est tout con.
autre solution, te faire une liste qui contient chaque element de ton enum


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 18:59:56    

the real moins moins a écrit :

bah c'est valide. faut juste pas esperer que ça passe chez un japonais [:joce]


J'ai horreur de ça.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 19:06:41    

sircam a écrit :

J'ai horreur de ça.


attend, c'est gavé cool quand tu écris des lettres grecques plutot que pi, epsilon, etc

Reply

Marsh Posté le 22-12-2004 à 19:10:44    

sircam a écrit :

J'ai horreur de ça.


bah moi ce qui m'horripile c'est le nom de variable ou de classe en français; mais si tu le fais en français, autant le faire à fond :p


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 19:13:17    

Taz a écrit :

attend, c'est gavé cool quand tu écris des lettres grecques plutot que pi, epsilon, etc


 
Oui, et avec l'Unicode, aucuns problèmes, même chez les jap' ;)

Reply

Marsh Posté le 22-12-2004 à 19:17:17    

encore faut-il que ton editeur le supporte *bien*, que ton gestionnaire de source aussi, etc etc. je me suis fait avoir une fois, plus jamais [:itm]
(pourtant c'était rigolo, j'écrivais des conneries dans des testcases :o )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 19:17:17   

Reply

Marsh Posté le 22-12-2004 à 20:40:12    

Ecrire un programme dans une langue autre que l'Anglais est un bel obstacle à la réutilisabilité et la maintenance du code.
 
Je me demande pq ça ne figure pas dans les principes de base de la programmation et de l'O.O., à l'heure de l'internationalisation et de l'européanisation galopantes.
 
Bon, on va pas revenir sur tous les jeux de mots marrants et/ou stupides qu'on peut faire en déclarant String et en jouant sur les deux langues. [:mlc]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 22:44:09    

the real moins moins a écrit :

guitariff > dans un enum, tu peux avoir une "vraie" classes, avec constructeur, variables membres, methodes et tout le toutim; je te laisse réflechir 2 secondes et tu verras que ton pb est tout con.
autre solution, te faire une liste qui contient chaque element de ton enum


je le trouve pas tout con son problême, moi ...
 
j'ai pas encore regardé les enums, mais c'est dommage si faut tout recoder soit même dès que tu veux une énumération ordonnée :/


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-12-2004 à 23:05:10    

Franchement, pour 99% des gens de ce forum, c'est complètement con de donner le conseil de coder en anglais si ils le font pas spontanément. Leur code, c'est quand même à eux qu'il sert, c'est eux qui vont le maintenir, le relire, et c'est quasi toujours des fr qui le reliront...
Alors pour un projet qu'on veut publier ou poster sur le net ok, mais alors faut arretter de conseiller à des gars de coder les noms de variables/méthodes de leur helloworld en anglais quoi oO

Reply

Marsh Posté le 22-12-2004 à 23:06:45    

Glod2> ok, mais on peut aussi se dire que c'est une bonne habitude à prendre. si tu code tjs en français, ce ne sera pas naturel de le faire en anglais le jour où tu bosseras ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-12-2004 à 23:15:59    

Oui, je suis tout à fait d'accord, d'ailleurs je code en anglais :)

Reply

Marsh Posté le 22-12-2004 à 23:22:26    

benou a écrit :

je le trouve pas tout con son problême, moi ...
 
j'ai pas encore regardé les enums, mais c'est dommage si faut tout recoder soit même dès que tu veux une énumération ordonnée :/


 
[:kiki]

Code :
  1. public enum Truc {
  2. bidule(1), machin(25), pouet(34);
  3. private int xyz;
  4. private Truc(int i) {
  5.    this.xyz = i;
  6. }
  7. public int getXYZ() {
  8.    return xyz;
  9. }
  10. }


 
trop dur...
 
 
(le kiki c'est pour le mec qui dit qu'il trouve un probleme complexe alors qu'il s'est jamais penché sur le sujet en question, pas pour la solution en elle meme)


Message édité par the real moins moins le 22-12-2004 à 23:23:47

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 23:24:40    

Glod 2 a écrit :

Franchement, pour 99% des gens de ce forum, c'est complètement con de donner le conseil de coder en anglais si ils le font pas spontanément. Leur code, c'est quand même à eux qu'il sert, c'est eux qui vont le maintenir, le relire, et c'est quasi toujours des fr qui le reliront...
Alors pour un projet qu'on veut publier ou poster sur le net ok, mais alors faut arretter de conseiller à des gars de coder les noms de variables/méthodes de leur helloworld en anglais quoi oO


et alors donc, il est posté ici ce code, et on le relit. ça suffit amplement :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 23:25:18    

ca répond pas à son problème ca ...
relis son post ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-12-2004 à 23:33:52    

Truc.values() ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 23:34:10    

et un index?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 23:51:47    

ouais, je vois pas d'autre solution ... c'est un peu dommage que la notion d'ordre soit présente dans les enums mais qu'on ne puisse pas vraiment l'exploiter pleinement sans recoder le truc


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-12-2004 à 23:53:47    

euh

Code :
  1. foreach (truc : MonEnum.values()) {
  2.   print(truc);
  3. }

, qu'est-ce que tu as a recoder là ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-12-2004 à 23:56:50    

merde elle est ou la javadoc (si y'en a??) pour les enums? la methode statique values() là, jsuis sur qu'elle est "par defaut" sur une public enum Truc { ... !?
et je n'en vois pas trace ici http://java.sun.com/j2se/1.5.0/doc [...] /Enum.html
 
 sinon y'a ça aussi http://java.sun.com/j2se/1.5.0/doc [...] #ordinal()
 ainsi que  
http://java.sun.com/j2se/1.5.0/doc [...] mpareTo(E)


Message édité par the real moins moins le 22-12-2004 à 23:57:02

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-12-2004 à 00:00:34    

Reply

Marsh Posté le 23-12-2004 à 18:37:32    

the real moins moins a écrit :

et alors donc, il est posté ici ce code, et on le relit. ça suffit amplement :o


oui remarque vu comme ça :o

Reply

Marsh Posté le 23-12-2004 à 20:09:40    

j'aime bcp les EnumSet et EnumMap :)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-12-2004 à 20:12:09    

sympa hein? :)
enfin, je suis pas allé voir l'implementation, et j'ai pas vraiment envie, parce que j'ai peur que ça soit un peu tordu, mais si ça respecte ses promesses au niveau perfs, c'est chouette :) ... si t'es allé voir l'impl, tu peux me dire en 2 mots si c'est *léger* comme objet?
 
(parce que, un TreeSet ou HashSet, des fois, c'est un peu lourdeau quand tu vois tout ce qu'il y a derrière - au niveau "memory usage", j'entend)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-12-2004 à 20:17:47    

euh, dans EnumSet, les methods of( ... ) pourquoi ils ont pas utilisé les varargs :??:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-12-2004 à 20:18:34    

ha ok:

Citation :

This factory, whose parameter list uses the varargs feature, may
     * be used to create an enum set initially containing an arbitrary
     * number of elements, but it is likely to run slower than the overloadings
     * that do not use varargs.


 
m'enfin "is likely to run slower", ça fait un peu plouc [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-12-2004 à 20:21:06    

j'ai juste lu la javadoc:  
 
Enum sets are represented internally as bit vectors
 
Enum maps are represented internally as arrays
 
 
bref, c'est de l'accès à 1 opération :love:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-12-2004 à 20:23:38    

oui oui, .. et je viens de mater le code, pour l'impl RegularEnumSet (moins de 64 elements dans ton enum), le seul membre de classes que j'ai vu c'est effectivement un long :)
 
... je sens que je vais revenir sur ma premiere idée pour mon bidule de gestion de droits, qui consistait à gerer les permissions sous forme d'enum, moi [:huit]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 23-12-2004 à 20:27:48    

le coup de la EnumMap c'est bien aussi : ca permet de gérer des association de type enum->object de façon hyper optimisée, mais surtout propre !


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-12-2004 à 20:29:41    

the real moins moins a écrit :

ha ok:

Citation :

This factory, whose parameter list uses the varargs feature, may
     * be used to create an enum set initially containing an arbitrary
     * number of elements, but it is likely to run slower than the overloadings
     * that do not use varargs.


 
m'enfin "is likely to run slower", ça fait un peu plouc [:mlc]


ils ont visé les perfs pour ces classes là ... l'utilisation de var args c'est la construction d'un tableau inutile et son parcours ...
 
ca leur coutait pas bien cher de faire quelques méthodes avec quelques arguments pour gérer les cas les plus courant de façon optimale ...


Message édité par benou le 23-12-2004 à 20:30:10

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 23-12-2004 à 20:38:56    

ouaip; m'enfin je suis "amusé" de voir autant de javadoc pour 6 constructeurs comme ça :/
 
et le "is likely to", comme j'ai dit, ça fait pas tres sérieux; qu'ils disent clairement que ça impacte *effectivement* les perfs, pas qu "il se pourrait qu'eventuellement ça impacte les perfs" :o


Message édité par the real moins moins le 23-12-2004 à 20:39:44

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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