Question

Je veux définir ces constantes et |eux pour différentes opérations pour générer des autorisations correctes.

Les définir comme:

public static final int READ = 4;
public static final int WRITE = 2;
public static final int EXECUTE = 1;

me donne un résultat correct comme prévu, comme Lire |Écrire |Exécuter ou écrire |EXÉCUTER.

fait les définir comme

public static final int READ = 0x4;
public static final int WRITE = 0x2;
public static final int EXECUTE = 0x1;

Donnez-moi un avantage?

Était-ce utile?

La solution

Étant donné qu'elles sont équivalentes à hexagonales ou à décimales, cela n'ajoute qu'en termes de lisibilité pour les autres développeurs.C'est fonctionnellement la même chose.

Bien que, si vous le faites pour la lisibilité, OCTAL serait encore mieux compte tenu du système sous-jacent:

public static final int READ = 04;
public static final int WRITE = 02;
public static final int EXECUTE = 01;

ou encore plus évident:

public static final int READ = 1<<2;
public static final int WRITE = 1<<1;
public static final int EXECUTE = 1;

Mais cela pourrait être excessif :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top