用enum代替int常量
1. int枚举:
引入枚举前,一般是声明一组具名的int常量,每个常量代表一个类型成员,这种方法叫做int枚举模式。
int枚举模式是类型不安全的,例如下面两组常量:性别和动物种类,二者不存在任何关系,然而却可以将ANIMAL_DOG传入一个需要性别参数的方法中,编译器不会出现警告,而且方法内部逻辑还会继续执行比较等操作。
采用int枚举模式的程序是十分脆弱的,因为int枚举是编译时常量,被编译到使用它们的客户端中,如果与枚举常量关联的int值发生变化客户端就必须重新编译,然而不重新编译却不会报错,但是会导致程序的结果不准确,例如上面的常量SEX_MAN被客户端使用,于是将其值1编译到客户端的.class中,然后如果API类中将SEX_MAN的值改为2,却不重新编译客户端,那么客户端得到的结果就是不准确的了。