Daily Curious Perversion of Programming #9

Na, ez a vicces konstansok napja úgy látszik.

A Java nyelv rengeteg agyahalottsága közül az egyik szívszerelmem, hogy nincsenek C-stílusú enumok, vagyis ha van egy láda konstansod, akkor számozhatod őket egyenként. Ez akkor különösen nagy élmény, amikor C-s kóddal közösen kell közlekedni a gépen, és a C-s header persze szépen teli van akkurátusan definiált enumos konstansokkal, amit persze neked is használnod kéne. Tehát a konstansokat egyenként át kell írni Java-ba, és megszámozni. Hurrá. Persze, ha ezt megspékeljük egy programozóval, amelyik ledefiniálja a végtelent konstansként, akkor egészen vicces dolgok is születhetnek eredményül. Például ilyenek:

Az eredeti C verzió:


enum FooBarMode
{
    FOO_GEEK,
    FOO_NERD, 
    FOO_LAMER,
    FOO_EXPERT,
    ...

Ugyanez Java-ban, szerinte:


    // enum FooBarMode
    public static final int FOO_GEEK   = 0;
    public static final int FOO_NERD   = 2;
    public static final int FOO_LAMER  = 3;
    public static final int FOO_EXPERT = 4;
    ...

Aszzem erre mondják, hogy kettőig sem tud számolni. És amilyen meglepő és mulatságos bugokat ez tud okozni... De arról majd máskor. :)

Hozzászólások

Naaa, azert a java 5 ota van mar enum. Addig telleg csak a konstansos bohockodas volt.

Hat, nem jo ha egy nerd-bol lamer lesz ez teny es valo.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.