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