延遲實例聲明變量最終訴延遲實例
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