對于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數組