泛型方法签名

pst*_*ton 4 java generics

我有2个不同类型的不同地图,这两个地图都是BaseClass.

我希望能够使用相同的逻辑将两个案例中的项目"保存"到地图中,使用Generics.

假设getId是一种方法BaseClass.

我需要强迫

  1. item是的子类BaseClass
  2. map值与该类型相同item

我怎样才能做到这一点?这是一次失败的尝试,描述了我需要做的事情:

private <T><?extends BaseClass> void save(T item, Map<Long, T> map)
{
    if (item.getId() == null)
    {
        long max = -1;
        for (Long key : map.keySet())
            max = Math.max(max, key);
        item.setId(max + 1);
    }
    map.put(item.getId(), item);
}
Run Code Online (Sandbox Code Playgroud)

Bal*_*usC 8

这部分

<T><?extends BaseClass>
Run Code Online (Sandbox Code Playgroud)

需要是

<T extends BaseClass>
Run Code Online (Sandbox Code Playgroud)

也可以看看: