Folgendes Mehr-oder-weniger-Minimalbeispiel illustriert mein Problem:
Java
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Vector<Vector<String>> strings = new Vector<Vector<String>>();
Vector<String> stringVector1 = new Vector<String>();
Vector<String> stringVector2 = new Vector<String>();
Vector<String> stringVector3 = new Vector<String>();
stringVector1.add("1test1");
stringVector1.add("1test3");
stringVector1.add("1test4");
stringVector1.add("1test5");
stringVector1.add("1test6");
stringVector2.add("2test1");
stringVector2.add("2test3");
stringVector2.add("2test4");
stringVector2.add("2test5");
stringVector2.add("2test6");
stringVector3.add("3test1");
stringVector3.add("3test3");
stringVector3.add("3test4");
stringVector3.add("3test5");
stringVector3.add("3test6");
strings.add(stringVector1);
strings.add(stringVector2);
strings.add(stringVector3);
Iterator it = strings.iterator();
while(it.hasNext()) {
Vector<String> strv = (Vector<String>) it.next();
if(strv.lastElement().equals("2test6"))
System.out.println(strv.lastElement());
}
}
}
Alles anzeigen
Das ergibt folgendes Warning:
Code
Main.java:37: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.Vector<java.lang.String>
Vector<String> strv = (Vector<String>) it.next();
^
1 warning
Hier auch auf Pastebin.
Kurze Funktionsbeschreibung: Ein zweidimensionaler Vector strings enthält weitere Vectors vom Typ String. Jeder Stringvector wird befüllt und dann werden die gefüllten Stringvectors in den zweidimensionalen strings-Vector gesteckt.
Danach soll über den strings-Vector iteriert werden und über den Iterator jedes letzte Element der eindimensionalen Strings mit einem Wert verglichen werden und ausgegeben, wenn der Wert gleich ist.
Wie krieg ich dieses Warning weg? Bzw. wo kann ich darüber nachlesen?
TIA.
EDIT: Einem Kollegen sei Dank nun gelöst:
und der Cast ist unnötig: