Używam Java.Pobierz iterator listy Java, aby zwrócić coś innego niż Object
Mam już klasę dla niestandardowego obiektu o nazwie "Temat".
Mam inną klasę, która zawiera tylko Linked Linked obiektów Subject. (o nazwie subjectList)
Napisałem jedną z metod (zwaną "getSubject()") w klasie subjectsList, która ma zwrócić obiekt Subject w określonym indeksie na liście połączonej. Aby to zrobić, użyłem ListIteratora. Chciałbym utworzyć ListIterator na danym indeksie w LinkedList i użyć metody .next().
Jednak metoda .next() w ListIterator zwraca tylko java.lang.Object, mimo że chcę zwrócić obiekt Subject.
Jak uzyskać ListIterator.next(), aby zwrócić obiekt Subject?
Próbowałem downcasting do tematu, ale wydaje się to nie udać, a ja czytam gdzieś, że nie można spuszczać niepowiązanych obiektów.
To moja klasa subjectsList:
import java.util.*;
public class subjectsList
{
//my LinkedList of Subject objects and a ListIterator
private LinkedList<Subject> l;
private ListIterator itr;
//constructor that simply creates a new empty LinkedList
public subjectsList()
{
l = new LinkedList();
}
//Method to return the Subject object at a specific index in the LinkedList
public Subject getSubject(byte index)
{
itr = l.listIterator(index);
return itr.next();
}
//Method to add a new Subject object to the LinkedList
public void addSubject(String nameInput, byte levelInput)
{
l.addLast(new Subject(nameInput, levelInput));
}
//Method to remove the Subject object at a specific index in the LinkedList
public void removeSubject(byte index)
{
itr = l.listIterator(index);
itr.next();
itr.remove();
}
}
Sposób w pytaniu jest "getSubject()" metoda.
w Javie jest to konwencja, aby rozpocząć nazwy klas z Wielka litera. Ułatwia to również innym osobom odczytanie kodu. – extraneon
Dzięki za wskazanie tego. – Joshua
Dlaczego faktycznie potrzebujesz 'ListIterator'? Co jest nie tak z 'List.get (indeks)' i 'List.remove (indeks)'? – whiskeysierra