延迟实例声明变量最终诉延迟实例
public class Foo{
private NotSoExpensiveObject o;
public NotSoExpensiveObject getNSEObject(){
if(o == null){
o = new NotSoExpensiveObject();
}
return o;
}
}
声明最后
public class Foo{
private final NotSoExpensiveObject o;
public Foo(){
o = new NotSoExpensiveObject();
}
}
是否宣布NotSoExpensiveObject
最终有超过延缓其实例什么优势?或者这是纯粹的情景?另外,有没有办法延迟实例化,并保持final
修饰符?
感谢
你可能会在那里不可修改的地方小心。它可能意味着一个可变对象变得不可修改。 – 2011-05-13 14:14:28
@安德鲁谢谢,增加更多信息 – 2011-05-13 14:17:51