1

我搜索了一种将 x 元素从地图复制到另一个的方法。我试过这段代码

private void newMapElement( Map<?, ?> userMap, Map<?, ?> newUserMap, int maxSize)
{
    int i = 0;
    for ( Map.Entry<?, ?> entry : userMap.entrySet() )
    {
        newUserMap.put( entry.getKey(), entry.getValue() );
            i++;
            if ( i == maxSize)
            {
                break;
            }
    }
}

但java似乎不喜欢put。

任何想法?

4

1 回答 1

3

您必须将newUserMap? super T用作带有 super(wildcards with upperbounds) 的通配符将允许您将元素添加到地图中,您的代码应如下所示:

private <T> void newMapElement( Map<? extends T, ? extends T> userMap, Map<? super T, ? super T> newUserMap, int maxSize)
{
    int i = 0;
    for ( Map.Entry<? extends T, ? extends T> entry : userMap.entrySet() )
    {
        newUserMap.put( entry.getKey(), entry.getValue() );
            i++;
            if ( i == maxSize)
            {
                break;
            }
    }
}
于 2013-01-17T12:15:39.863 回答