最新在學習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,但是這僅僅表示不可以讓它引用另外一個數組,數組中的元素可以自由的更改
}
Java學習--獲取內部類中int變量值方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.