如何使用泛型接受Map和MultiMap?

时间:2017-12-12 02:06:40

标签: java generics hashmap guava multimap

  public static <T> T getResourceByEdition(
    Class<? extends ResourceFile<T>> c,
    Edition edition,
    Map<Edition, T> map)
  {
    if (map.containsKey(edition)) {
      return map.get(edition);
    }
    T resource =
      StaticResourceLoader
        .getResourceLoader()
        .getLocalizedResource(c, edition.getLocale());
    map.put(edition, resource);

    return resource;
  }

我正在尝试使用泛型来获取不同类型的输入参数。因此getResourceByEdition可用于以下两种情况:

  1. Map<Edition, T> map - &gt; ListMultimap<Edition, MyClass>
  2. Map<Edition, T> map - &gt; Map<Edition, ListMultimap<LocalDate, MyClass>>
  3. 我尝试了多种方法来适应泛型方法中的map和MultiMap。但它们都不起作用。以下是我尝试过的事情:

    1. 输入的定义 - (Class<? extends ResourceFile<T>> c, Edition edition, Map<Edition, List<T>> map)
    2. 错误讯息:

        required: Class<? extends ResourceFile<T>>, Edition,Map<Edition,<any>>
        found: Class<MyClass>,Edition,ListMultimap<Edition, MyClass>
      
      1. 输入的定义 - (Class<? extends ResourceFile<T>> c, Edition edition, Map<Edition, T> map)
      2. 错误讯息:

          required: Class<? extends ResourceFile<T>>, Edition,Map<Edition,T>
          found: Class<MyClass>,Edition,ListMultimap<Edition, MyClass>
        

        更多想法?还是不可能?提前致谢!

0 个答案:

没有答案