是否有可用于List和Map参数的通用Collection,目的只是检查not-null和size?
现在我有一个Validation类,其中包含以下方法:
// 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<???>
),因此我同时包含了列表和地图?
或者我应该创建一个完全相同的新方法,而不是List我使用Map作为参数,如下所示:
// 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
...
}
答案 0 :(得分:0)
没有这样的接口或超类。当然可以基于Object完成空检查。但是没有与size方法或类似方法的通用接口。