如何實現一個過濾器,如果爲null返回所有的數據? 例如,如果name爲null,則應將其從過濾器中排除。 我腦海中唯一的辦法是製作10萬行代碼並測試所有的組合。這是非常愚蠢的。我不想這樣。我相信有更好的辦法。實現一個過濾器,在空的情況下返回所有數據
Collection<Ojects> filter(String name, Integer age, Integer number) ;
如何實現一個過濾器,如果爲null返回所有的數據? 例如,如果name爲null,則應將其從過濾器中排除。 我腦海中唯一的辦法是製作10萬行代碼並測試所有的組合。這是非常愚蠢的。我不想這樣。我相信有更好的辦法。實現一個過濾器,在空的情況下返回所有數據
Collection<Ojects> filter(String name, Integer age, Integer number) ;
注意:你的代碼行是不正確的:
要調用過濾方法:
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
}
如果你沒有過濾參數時沒有給出你將返回所有對象...
,如果我有10個參數。我將要做什麼1千萬行代碼? – naskobg13
只要你不提供太多的信息,**是** ...有很多方法來減少代碼,但根據你的規格(多數民衆贊成,沒有)這是你可以做的最好的 –
你是什麼意思'如果爲空'?什麼是空?你要返回哪些數據? – copeg
至少你可以在這裏複製你所有的作業,所以我們知道它是什麼! – Lrrr