使用Generics如何将Map作为Collection传递给我的方法?

时间:2013-12-07 07:05:27

标签: java collections

我的代码如下:

public class CalledClass 
{
    public static <T> List<T> conditionMethod(**<T> map,Class<T> tableName) 
{
    //B.L
    return li;
}
}
public class PureCoding
{ 
   public static <T> void main(String[] args)
  {        
    Map<T,T> map = new HashMap<T,T>();
    CalledClass.conditionMethod(map,HomeWorkPojo.class);

  }
}

通过这种方式,我不能在CalledClass中调用方法。我该如何调用该方法。在这里,我想将Collection类型Map和Class Name作为Parameters传递给我的conditionMethod()。

取代**我会给出什么类型。?

1 个答案:

答案 0 :(得分:1)

所以...如果我理解正确,您希望将MapClass传递给您的方法。在这种情况下,您需要的唯一泛型是地图的键和值的界限,以及您想要的Class的类型(或通配符):

public static <K, V> List<V> conditionMethod(Map<K, V> map, Class<?> tableName) {
    // implementation to go here
}

记住generics actually provide - 关于类型的编译时安全性。他们不是一个神奇的子弹;你可以使用它们。