高手来看一下 关于一个final的问题
这个程序中CountInt类的中的b是final类型的为什么可以赋值一个可变的数。
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;
}
}
...全文
相关推荐
java final变量详解
final 变量的变与不变是一个重要的问题。有人说 final 变量在赋值后就不可变,但这个不变到底指的是什么呢?这个不变指的是引用,是地址,而所引用的对象的内容仍然是可变的。
final data 3.0 数据恢复
首先,我们来了解一下final data 3.0的核心功能。它是一款强大的数据恢复软件,能够深入硬盘的每一个角落,扫描已被标记为“已删除”的文件。
Android源码中final关键字的用法及final,finally,finalize的区别
在Android的源码中,final关键字的使用有时会呈现出独特的风格。例如,有时会在方法内部将成员变量赋值给一个final类型的局部变量,再进行后续操作。
DIYP影音Final版.zip
从压缩包中包含的文件名"DIYP影音Final版.apk"可以看出,这是一个Android应用程序包文件,用户可以通过安装这个apk文件在Android设备上运行DIYP影音应用。
java多线程关键字final和static详解
final关键字可以解决这个问题,确保对象的final字段都是初始化完成的,即其他线程读取到的都是相应字段的初始值而不是默认值。


Java SE
