我使用的是jdk 1.6
我的主要方法:
exmp3<String , Integer> exmp3 = new exmp3( "ravi" , new ArrayList<String>());
exmp3.put(5);
exmp3.put(15);
exmp3.put(20);
ArrayList<Integer> a = exmp3.getObject();
System.out.println(a.size());
类 exmp3 :
public class exmp3<ABC , XYZ>
{
private ABC abc ;
private ArrayList<XYZ> xyz;
public exmp3(ABC abc , ArrayList<XYZ> xyz)
{
this.xyz = xyz;
}
public void put(int i)
{
ArrayList<Integer> a = (ArrayList<Integer>) this.xyz;
a.add(i);
}
public ArrayList<XYZ> getObject()
{
return xyz;
}
}
我的查询是在创建 exmp3
的实例时进行的在main
方法为什么String
被接受为 ArrayList
的参数类型正如我提到的exmp3<String , Integer> exmp3
在main
方法。
最佳答案
因为您没有为构造函数调用指定类型参数。要么显式指定它们( new exmp3<String, Integer>(...)
),要么让编译器计算出它们( new exmp3<>(...)
,需要 JDK7+)。
关于java - Java 中泛型的魔力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11014646/