泛型方法签名

时间:2012-03-17 04:21:14

标签: java generics

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

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

假设getIdBaseClass的方法。

我需要强迫

  1. itemBaseClass
  2. 的子类
  3. map值与item
  4. 的类型相同

    我该怎么做?这是一次失败的尝试,描述了我需要做的事情:

    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);
    }
    

1 个答案:

答案 0 :(得分:8)

这部分

<T><?extends BaseClass>

需要

<T extends BaseClass>

另见: