Java bashing
Apr. 28th, 2008 03:35 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
enum Color {
RED(0xff0000),
GREEN(0x00ff00),
BLUE(0x0000ff),
WHITE(0xffffff);
int code;
Color(int code) {
this.code = code;
}
public int getCode() {
return code;
}
}
//... (many files away)
Set<Color> myPalette = newHashSet(RED, WHITE, BLUE);
//... (many lines/files away)
if (myPalette.contains(0xff0000)) {
System.out.println("0xff0000 is our color!");
}
no subject
Date: 2008-04-29 04:38 am (UTC)ну да, нельзя, хотя должен сказать что приведенный код не лучше. использовать энумы для цвета как минимум довольно странно. слишком много значений, все тяжело будет перечислить :)
no subject
Date: 2008-04-29 10:03 am (UTC)То есть
enum A { One = 1, Two = 1 };
...
Console.WriteLine(A.One == A.Two);
пишет True и это правильно.
Или в жаве какие-то дополнительные штуки обещают, но не всегда доставляют?
no subject
Date: 2008-04-29 11:37 am (UTC)Незадача заключается в том, что ordinal() всегда возвращает порядковый номер (начиная с 0) енум-значения внутри енума и изменить это никак нельзя!
no subject
Date: 2008-04-29 11:29 am (UTC)мысль была интересная :)
ps. только вместо HashSet лучше EnumSet, нет?
no subject
Date: 2008-04-29 11:40 am (UTC)Пример:
output:
true
false
no subject
Date: 2008-04-30 04:52 am (UTC)no subject
Date: 2008-04-30 08:32 am (UTC)no subject
Date: 2008-04-30 02:57 pm (UTC)no subject
Date: 2008-04-29 06:11 pm (UTC)Set.contains(Object)
...