列表和地图的通用集合?

时间:2014-06-30 10:06:27

标签: java list collections types map

是否有可用于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
    ...
}

1 个答案:

答案 0 :(得分:0)

没有这样的接口或超类。当然可以基于Object完成空检查。但是没有与size方法或类似方法的通用接口。