读书人

高手来看一下 关于一个final的有关问题

发布时间: 2012-01-03 22:16:06 作者: rapoo

高手来看一下 关于一个final的问题
这个程序中CountInt类的中的b是final类型的为什么可以赋值一个可变的数。

Java code
import java.util.ArrayList;import java.util.List;public class FinalTest{    public static void main(String[] args)    {        FilledList<CoutInt> foo = new FilledList<CoutInt>(CoutInt.class);        System.out.println(foo.create(14));    }} class CoutInt{    private static int a;    private final int b = a++;    @Override    public String toString()    {        return Integer.toString(b);    }    }class FilledList<T> {    private Class<T> classtype;    public FilledList(Class<T> type)    {        this.classtype = type;    }    public List<T> create(int Elements)    {        List<T> result =  new ArrayList<T>();    try{        for(int i=0;i<Elements;i++)        {            result.add(classtype.newInstance());        }       }catch(Exception ex)       {           throw new RuntimeException();       }        return result;    }        }


[解决办法]
b的值赋值后没有变
你每次new 不同的CoutInt ,不同的CoutInt的对象的b是不一样的
但是CoutInt的对象的b的值赋值后就没有再改变了

读书人网 >J2SE开发

热点推荐