Stavo refactoring qualche vecchio codice di mine che ho scritto e ho stumbeled su questo codice:Qualsiasi alternativa sicura e netta a ArrayList.addAll?
List<OcmImageData> fullImagePool = new ArrayList<>();
if (CollectionUtils.isNotEmpty(style.getTestMH())) {
fullImagePool.addAll(style.getTestMH());
}
if (CollectionUtils.isNotEmpty(style.getTrousers())) {
fullImagePool.addAll(style.getTrousers());
}
if (CollectionUtils.isNotEmpty(style.getDetailRevers())) {
fullImagePool.addAll(style.getDetailRevers());
}
if (CollectionUtils.isNotEmpty(style.getDetailCuffs())) {
fullImagePool.addAll(style.getDetailCuffs());
}
if (CollectionUtils.isNotEmpty(style.getDetailInner())) {
fullImagePool.addAll(style.getDetailInner());
}
if (CollectionUtils.isNotEmpty(style.getDetailMaterial())) {
fullImagePool.addAll(style.getDetailMaterial());
}
if (CollectionUtils.isNotEmpty(style.getComposing())) {
fullImagePool.addAll(style.getComposing());
}
...
Quindi, in pratica ho bisogno di creare un ArrayList che contiene tutti gli elenchi qui fa riferimento, in quanto questi possono essere null (vengono scaricati dal database da un framework di origine chiuso e, sfortunatamente, sono nulli se non trova nulla), ho bisogno di controllare ogni volta se la raccolta non è nullo per aggiungerli in questo pool che sembra solo strano.
Esiste una libreria o classe di utilità Framework Collection che mi consente di aggiungere una raccolta a un'altra senza eseguire il controllo Null-safe?
I_strongly_ raccomando di creare un wrapper attorno al framework di cacky closed source per non restituire 'null', restituendo invece una lista vuota, quindi non devi preoccuparti di questo mai più. Usare 'null' invece di una raccolta vuota è essenzialmente sempre una pessima idea. –
Perché? Se i riferimenti di elenco nulli sono semanticamente uguali a quelli vuoti, perché non utilizzare solo elenchi vuoti? E se sono semanticamente diversi, perché vuoi trovare una biblioteca che li tratti semanticamente della stessa cosa? – EJP