首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

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

高手来看一下 关于一个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的值赋值后就没有再改变了

热点排行