19. april 2004 - 15:24Der er
4 kommentarer og 1 løsning
problem med Definition af en int
Jeg har overtaget noget Java kode, og må jo desværre sige at java er ikke mit stærke felt endnu, så jeg går relativt tit i stå, så er det jo smukt at jeg har eksperten til at spørge til råds.
Jeg er faldet over denne linie i min kode, som jeg ikke rigtigt kan greje.
Har ingen problemer med alt før | tegnet, hvad betyder det i denne kontekst?
final public static int ITEM_TYPE_USER = 0x0100 | Admintype.CODE_ADMIN;
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
final = kan ikke ændres public = kan tilgåes overalt static = kun 1 kopi delt af alle instanser af klassen int = hel tal 32 bit ITEM_TYPE_USER = navn på variabel (konstant i dette tilfælde) 0x0100 = 256 eller nok snarere bit 8 sat (startende med mindst signifikant 0) | = binær OR Admintype.CODE_ADMIN = konstant defineret andet steds
så det det er højst sandsynligt er at jeg et andet sted henne kalder Admintype.CODE_ADMIN for 0x008000, eller noget lignende, og så samtidigt giver jeg 0x0100 med således at jeg ned i ITEM_TYPE_USER sætter noget der minder om 0x008100 eller noget i den stil er det helt skævt?
Det mest sandsynlige kunne gå galt er hvis Admintype.CODE_ADMIN er en long. det burde virke hvis du caster den til en int:
final public static int ITEM_TYPE_USER = 0x0100 | (int)Admintype.CODE_ADMIN;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.