日期:2014-05-19  浏览次数:20752 次

一道关于匿名内部类的问题
Java code

package com.gmx;

public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
 int count = 0;

new Thread(){

@Override
public void run() {
count++;
}

}.start();
}

}




我找到错误了,是不能在匿名内部类中调用非final的变量.但是现在的问题是,加上final之后count不能++了.怎么改才能不报错又能完成 count++ 的功能

------解决方案--------------------
最简单的方法:
Java code

    public static void main(String[] args) {
        final int[] count = {0};

        new Thread() {

            @Override
            public void run() {
                count[0]++;
            }

        }.start();
    }