使用类

时间:2018-05-03 08:59:20

标签: java generics

有一个课程:

public class RepositoryHolder<T extends Repository<?>> {

      private Map<Class<?>, T> repoMap = new HashMap<Class<?>, T>();

      public <T1> void registerRepo(Class<T1> clazz, T repo){
          repoMap.put(clazz, repo);
      }
}

目的是将T1类型与Repository&lt; \?&gt;

中的通配符相关联

在registerRepo()方法中,clazz类型应与T类型的repo相关联。例如:如果T = MyRepo1,那么只有跟随呼叫才有效

    MyRepo1<String> myrepo1 = new MyRepo1<>();
    registerRepo(String.class, myrepo1 )

而不是这一个:

    MyRepo1<Integer> myrepo1 = new MyRepo1<>();
    registerRepo(String.class, myrepo1 )

如何实现这一目标?

0 个答案:

没有答案