1

我想定义这些常量和 | 它们用于不同的操作以生成正确的权限。

将它们定义为:

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

给了我预期的正确结果,比如 READ | 写 | 执行或写入 | 执行。

是否将它们定义为

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

给我什么好处?

4

1 回答 1

2

由于它们在十六进制或十进制中是等价的,这只会增加其他开发人员的可读性。它在功能上是一样的。

虽然,如果你是为了可读性而这样做,考虑到底层系统,八进制会更好:

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

甚至更明显:

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

但这可能太过分了:)

于 2014-01-10T18:44:42.237 回答