Ниже приведена программа, которую я написал для того, чтобы понять программирование генериков в Java. Как вы, наверное, заметили, что я новичок в java, и не удивительно, что эта программа не компилируется.сначала попытайтесь понять java generics
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
Может кто-нибудь указать, что конкретно представляет собой проблема здесь.
Этот вопрос не соответствует теме, потому что речь идет о запросе на исправление. – hexafraction
Я не думаю, что это опечатка, но отсутствие понимания наследования и полиморфизма. –