如何将一个类的arraylist对象传递给在java中以对象作为参数的泛型方法

时间:2014-03-19 11:09:16

标签: java arraylist

地址和名称是2类,其id和地址作为变量。有一个名为getHashMApById的方法,我将ArrayList obj作为参数传递给该方法。在调用函数的时候,我传递的是一个方法,这个方法是ArrayList的一个对象但我错误地说我不能把“a”传递给方法。

public static void main(......){
ArrayList<Address> a=new ArrayList<Address>();
...
...
HashMap h=new HashMap();
h=getHashMapById(a);
....
...
ArrayList<Name> n-new ArrayList<Name>();
....
...
h=getHashMApById(n);
....
....
.....
}
public static HashMap<String,Object> getHashMapbyId(ArrayList<Object> obj){
.......
..........
}
我可以这样做吗?如果没有,请帮助我解决方案

先谢谢。

2 个答案:

答案 0 :(得分:1)

地址集合与对象集合不同。阅读此http://www.javacodegeeks.com/2011/04/java-generics-quick-tutorial.html - 尤其是关于子类型的部分。

您可以通过为map方法定义泛型类型参数来保存实现:

public static <E> HashMap<String, E> getHashMapbyId(ArrayList<E> obj) {

答案 1 :(得分:0)

您可以在静态方法中执行类似的操作

 private static void print(List<?> objectList) {
    System.out.println(objectList.size());
}