Pergunta

Eu quero definir essas constantes e | los para diferentes operações para gerar permissões corretas.

Definindo-os como :

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

me dá o resultado correto, conforme o esperado, como LEITURA | GRAVAÇÃO | EXECUÇÃO ou GRAVAÇÃO | EXECUÇÃO.

Não defini-los como

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

me dê algum benefício?

Foi útil?

Solução

Uma vez que eles são o equivalente em hexadecimal ou decimal, que só acrescenta em termos de capacidade de leitura para outros programadores.É funcionalmente o mesmo.

Embora, se você está fazendo isso para facilitar a leitura, octal seria ainda melhor, dado o sistema subjacente:

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

ou ainda mais evidente:

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

Mas o que pode ser excessivo :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top