對(duì)于public static final String[] CODES={ "A","B""C""D""E},是得不到所期望的保護(hù)codes數(shù)組內(nèi)容的功能的,至多只能做到保護(hù)指向codes的指針不可更改。

改進(jìn)方案:

  • 解決方案1:定義一個(gè)私有數(shù)組,以及編寫(xiě)一個(gè)公有的非可變列表: 

        private static final String[] CODES ={ "A","B", "C", "D", "E"}; 

        public static final List VALUES= Collections.unmodifiableList(Arrays.asList(CODES)); 

    這個(gè)時(shí)候,如果VALUES有修改操作,會(huì)拋出java.lang.UnsupportedOperationException


  • 參考:http://www.javaeye.com/topic/54226    慎重使用final數(shù)組