对于public static final String[] CODES={ "A","B", "C", "D", "E},是得不到所期望的保护codes数组内容的功能的,至多只能做到保护指向codes的指针不可更改。
改进方案:
解决方案1:定义一个私有数组,以及编写一个公有的非可变列表:
private static final String[] CODES ={ "A","B", "C", "D", "E"};
public static final List VALUES= Collections.unmodifiableList(Arrays.asList(CODES));
这个时候,如果VALUES有修改操作,会抛出java.lang.UnsupportedOperationException
参考:http://www.javaeye.com/topic/54226 慎重使用final数组