最新在学习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变量值方法
最新推荐文章于 2023-02-02 18:40:41 发布