package org.oklab; /** * @author satoshiokita * */ public class StaticFinal { /** * static final修飾子で、変更が出来ない配列オブジェクトを定義しているつもりだが、 * 実際には、ポインタなので配列の中身を変更できてしまう。 */ public static final Object[] objArray = { new Integer(1), new Integer(2) }; public static void main(String[] args) { StaticFinal sf = new StaticFinal(); for (int i = 0; i < StaticFinal.objArray.length; i++) { System.out.println(objArray[i].toString()); } /* static finalなので当然コンパイル出来ない。 StaticFinal.objArray = new Object [] { new Integer(1) }; */ for (int i = 0; i < StaticFinal.objArray.length; i++) { objArray[i] = new Integer(5); System.out.println(objArray[i]); } } }