2012-07-02 59 views
1

我需要爲null檢查嵌套方法調用,像這樣:空巢檢查方法調用Java中

if (getShopModel() != null && getShopModel().getType() != null) 

我不認爲這是做到這一點的最好辦法,雖然是我打電話getShopModel可能兩次相當昂貴。

有沒有更好的方法來檢查getShopModel()。getType()以這種方式我只需要調用getShopModel()一次?

回答

4

使用一個變量...

Model model = getShopModel(); 
if (model != null && model.getType() != null) 

,這將花費你一分錢,節省了額外的呼叫,甚至可能更容易調試你應該關注通過「getShopModel」返回的值。

+0

非常好!關於Java的最醜陋的事情是它似乎繁殖出來的漫長而難以理解的方法調用。 – Gene

+0

@Gene,是的,我也討厭這些。他們看起來很聰明,但調試它們是地獄。但是有一些編碼風格明確地反對它們,例如[Demeter法](http://en.wikipedia.org/wiki/Law_of_Demeter)。 – eran