我有點在等待這個問題的'不'的答案。你可以在if子句中存儲一個變量嗎?
我感興趣的是如果您可以在if-clause中檢查時同時保存一個變量。
假設我有這個代碼。
if(foo!=null){
if(foo.getBar()!=null){
Bar bar = foo.getBar();
System.out.println("Success: " + bar);
} else {
System.out.println("Failure.");
}
} else {
System.out.println("Failure.");
}
我現在正在處理「失敗」 - 獨立的狀態,即使結果是相同的。我可以像這樣把它們弄到一起:
if(foo!=null && foo.getBar()!=null){
Bar bar = foo.getBar();
System.out.println("Success: " + bar);
} else {
System.out.println("Failure.");
}
已經有很多整齊的代碼了。如果foo爲null,它會停在那裏,不會嘗試foo.getBar(在if),所以我不會得到一個NPE。我想提升的最後一件事情,以及主要問題:我真的給了兩次foo.getBar()嗎?如果getBar()會是一個非常繁重的操作,那麼離開第二個相同的調用將會很好。所以,我想知道是否有某種方式可以做類似的東西,以這樣的:
if(foo!=null && (Bar bar = foo.getBar())!=null){
Bar bar = foo.getBar();
System.out.println("Success: " + bar);
} else {
System.out.println("Failure.");
}
我將不得不如果再次是將它分解到兩個不同的,如果我想這樣做
Bar bar = foo.getBar();
if (bar!=null) ...
順便說一下,這是「失敗」。 – 2009-02-19 14:53:43