Java 通过使用泛型,如何将映射作为集合传递给方法?
我的代码如下:Java 通过使用泛型,如何将映射作为集合传递给方法?,java,collections,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) {
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);
}
}
被称为类的公共类
{
公共静态列表条件方法(**映射,类tableName)
{
//比尔
返回李;
}
}
公共类纯编码
{
公共静态void main(字符串[]args)
{
Map Map=newhashmap();
CalledClass.conditionMethod(映射,HomeWorkPojo.class);
}
}
这样,我就不能在CalledClass中调用方法。如何调用该方法。在这里,我想将集合类型映射和类名作为参数传递给我的conditionMethod()
代替**我将提供什么类型的产品 所以…如果我理解正确,您希望将
映射
和类
传递给您的方法。在这种情况下,您需要的唯一泛型是映射的键和值的边界,以及所需的Class
类型(或通配符):
publicstaticlist条件方法(映射,类tableName){
//我要去这里
}
记住什么-编译时类型的安全性。它们不是什么神奇的子弹;您可以按预期使用它们。地图不是收藏。是的,您是对的。现在我想把map作为参数传递给main类中的方法,我想在另一个类中调用该方法。我怎么能?只使用泛型…这是不可能的。地图是地图,它也是一个对象,但它不是别的。因此,除了Map和Object之外,没有其他类型可以用来作为参数传递Map。
public static <K, V> List<V> conditionMethod(Map<K, V> map, Class<?> tableName) {
// implementation to go here
}