下面是我为了理解 Java 中的泛型编程而编写的一个程序。正如您可能已经注意到的那样,我是 Java 新手,因此该程序无法编译也就不足为奇了。
import java.util.*;
public class GenericBox<T>
{
private List<T> t;
private Iterator<T> itor;
public GenericBox()
{
t = new ArrayList<T>();
itor = t.listIterator();
}
public void insert(T t)
{
itor.add(t);
}
public T retrieve()
{
if(itor.hasNext())
{
return itor.next();
}
}
public static void main (String [] args)
{
GenericBox <String> strbox = new GenericBox<String>();
GenericBox <String> intbox = new GenericBox<String>();
strbox.insert(new String("karthik"));
strbox.insert(new String("kanchana"));
strbox.insert(new String("aditya"));
String s = strbox.retrieve();
System.out.println(s);
s = strbox.retrieve();
System.out.println(s);
s = strbox.retrieve();
System.out.println(s);
}
}
下面给出了我得到的编译错误。
GenericBox.java:17: error: cannot find symbol
itor.add(t);
^
symbol: method add(T)
location: variable itor of type Iterator<T>
where T is a type-variable:
T extends Object declared in class GenericBox
1 error
有人可以指出这里到底是什么问题。