【发布时间】:2014-08-20 16:16:42
【问题描述】:
是否有一个通用的集合可以用于 List 和 Map 参数,目的只是检查非空和大小?
现在我有一个具有以下方法的验证类:
// Check if the given List is not null, nor empty
public static <E> boolean listNotNull(List<E> l, boolean checkSize, int size)
{
// List is null: return false
if(l == null)
return false;
// List is smaller or equal to given size: return false
if(checkSize && l.size() <= size)
return false;
// Everything is OK: return true
return true;
}
然后我可以这样使用:
if(V.listNotNull(myList, true, 0)){ // if(myList != null && myList.size() > 0){
// myList is not null, nor empty:
...
}
或
if(V.listNotNull(myList, true, 1)){ // if(myList != null && myList.size() > 1){
// myList is not null, and has at least 2 items:
...
}
或
if(V.listNotNull(myList, false, 0)){ // if(myList != null){
// myList is not null, but might still be empty:
...
}
我对我的列表使用这种通用验证方法,但在一种方法中我使用 HashMap。有了这个 HashMap,我再次想检查相同的内容(不为空,也不为空):
if(myHashMap != null && myHashMap.size() > 0){
// myHashMap is not null, nor empty:
...
}
是否可以将我的验证方法参数中的List<E> 替换为其他内容(如Collection<???>),所以我同时包含列表和地图?
或者我应该创建一个完全相同的新方法,但是我使用 Map 作为参数而不是 List,如下所示:
// Check if the given Map is not null, nor empty
public static <K, E> boolean mapNotNull(Map<K, E> m, boolean checkSize, int size)
{
// Map is null: return false
if(m == null)
return false;
// Map is smaller or equal to given size: return false
if(checkSize && m.size() <= size)
return false;
// Everything is OK: return true
return true;
}
和
if(V.mapNotNull(myHashMap, true, 0)){ // if(myHashMap != null && myHashMap.size() > 0){
// myHashMap is not null, nor empty
...
}
【问题讨论】:
标签: java list collections types map