Java學習--獲取內部類中int變量值方法

最新在學習Java核心卷一,看到一個例子,可以獲取內部類中int變量的值,解決了很久以來的困惑,記錄一下。

/**
 * 統計一下在排序過程中調用compareTo次數
 * 說明:在內部類中獲取int變量方法
 */
@Test
public void print(){
    //由於清楚地知道counter需要更新,所以不能將counter聲明爲final。由於Integer對象是不可變的,所以也不能用
    //Integer代替它。補救的方法是使用一個長度爲1的數組。
    final int [] counter = new int[1];
    Date [] dates = new Date[100];
    for (int i = 0; i < dates.length; i++){
        dates[i] = new Date(){
            @Override
            public int compareTo(Date anotherDate) {
                counter[0]++;
                return super.compareTo(anotherDate);
            }
        };
    }
    System.out.println("-------call compareTo times is:----------"+counter[0]);
    //數組變量仍然被聲明爲final,但是這僅僅表示不可以讓它引用另外一個數組,數組中的元素可以自由的更改
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章