日期:2014-05-20  浏览次数:20729 次

java中final应用场景的疑问
对于一般用作声明常量的修饰符:final,应用在单例模式中我有个疑问,代码如下:
Java code
public class Singleton
{
    private static final singleton=new Singleton();//为什么要用final呢?去掉行不行呢?
    private Singleton
    {}
    public static Singleton newInstance()
    {
        return singleton
    }
}



------解决方案--------------------
final 的最大好处是防止意外的发生了这种替换,毕竟软件有一定生命周期,而且不是永远只有你去维护它,就是是你自己,过个2年怕是也不记得当时情景了。
------解决方案--------------------
去掉不是不行,但加是为保险起见
因为newInstance方法返回的是一个Singleton对象
加上final就声明了singleton永远为一个Singleton对象,不能改变