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

将它们定义为:

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

给我正确的结果如预期,如阅读|写|执行或写作执行。

将它们定义为

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

给我任何好处?

有帮助吗?

解决方案

由于它们相当于十六进制或十进制,因此仅在其他开发人员的可读性方面增加。它在功能上相同。

虽然,如果您正在为可读性进行,但八大数将更好地给出底层系统:

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;
.

但这可能过度:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top