2014-04-01 14 views
1

我正在制作一些课程,我打算一旦完成后就希望将其作为图书馆推出。在这里面我用魔术常量(我相信这是正确的说法)强制魔法常数

public static final int LIST = 0; 
public static final int GRID = 1; 

是否有可能在的Java/Android的强制时的方法setMode(int mode)被调用时,他们必须使用LISTGRID?所以如果他们通过0,1,15,999等进入函数,它会抛出一个错误/警告?或者Java可以不区分LIST0

回答

5

您应该使用Enum。看到例子:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html在你的情况下,我会建议:

public enum Mode { LIST, GRID } 

setMode(Mode mode); 
+0

啊啊谢谢,我听说过枚举,但从来没有使用过。这是Android定义诸如'Gravivty.TOP'之类的方式吗? –

+0

不,这些是用于在一个整数内定义多个事物的特殊常量(http://en.wikipedia.org/wiki/Bit_array) – atok

+0

哦,emun或Bit array相对于另一个有什么优势? –