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对象,不能改变