2015-04-29 61 views
-4

如何實現一個過濾器,如果爲null返回所有的數據? 例如,如果name爲null,則應將其從過濾器中排除。 我腦海中唯一的辦法是製作10萬行代碼並測試所有的組合。這是非常愚蠢的。我不想這樣。我相信有更好的辦法。實現一個過濾器,在空的情況下返回所有數據

Collection<Ojects> filter(String name, Integer age, Integer number) ; 
+1

你是什麼意思'如果爲空'?什麼是空?你要返回哪些數據? – copeg

+0

至少你可以在這裏複製你所有的作業,所以我們知道它是什麼! – Lrrr

回答

0

注意:你的代碼行是不正確的:

要調用過濾方法:

Collection<Ojects> ojects = filter(String name, Integer age, Integer number); 

也有很多的細節,你的問題丟失,但用作指導:檢查是否所有要過濾的條件都爲空,並返回所有其他元素執行過濾器:

public Collection<Ojects> filter(String name, Integer age, Integer number) { 
    // return all object if no filter 
    if (name == null && age == null && number == null) { 
     Collection<Ojects> allOjects = // get all objects from where you wish 
     return allOjects; 
    } 

    // do the filters 
    Collection<Ojects> filteredOjects = new .... 

    // filter by name 
    if (name != null && name.lenght > 0) { 
     // do the filter and put the matching ones in filtered objects 
    } 

    // filter by age 
    if (age != null && age < 0) { 
     // do the filter and put the matching ones in filtered objects 
    } 

    // filter by number 
    if (name != null // conditions you need) { 
     // do the filter and put the matching ones in filtered objects 
    } 


    return filteredObjects 
} 

如果你沒有過濾參數時沒有給出你將返回所有對象...

+0

,如果我有10個參數。我將要做什麼1千萬行代碼? – naskobg13

+0

只要你不提供太多的信息,**是** ...有很多方法來減少代碼,但根據你的規格(多數民衆贊成,沒有)這是你可以做的最好的 –

相關問題