Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Du kannst nicht über Class iterieren, wenn dann über Class[], aber Arrays stellen von sich keinen Iterator zur Verfügung.
Sonst kannst du ne Zählschleife benutzen um an alle Elemente des Arrays zu kommen, oder du erstellst nen Iterator über dein Array.
Du kannst nicht über Class iterieren, wenn dann über Class[], aber Arrays stellen von sich keinen Iterator zur Verfügung.
Sonst kannst du ne Zählschleife benutzen um an alle Elemente des Arrays zu kommen, oder du erstellst nen Iterator über dein Array.
Das versteh ich jetzt nicht. Das erzeugt genau denselben Fehler (kann variable weitergeben nicht finden).
Java:
Iterator<Class[]> it = weitergeben.iterator();
while(it.hasNext())
{
System.out.println("JA");
}
Wenn Arrays keinen Iterator zur Verfügung stellen bin ich echt ratlos. Laut Tutor sollen wir das Array nämlich iterieren..dann beim iterieren eine Liste erstellen und diese dann noch mal iterieren..
Das wird ja lustig
edit:
Wenn ich folgendes schreibe, findet er die Variable auch nicht
Java:
for (Class[] item: weitergeben)
{
System.out.println(item);
}
Wenn Arrays keinen Iterator zur Verfügung stellen bin ich echt ratlos. Laut Tutor sollen wir das Array nämlich iterieren..dann beim iterieren eine Liste erstellen und diese dann noch mal iterieren..[/code]
public Portal()
{
Class[] weitergeben = {Gift.class,Cane.class} ;
for (Class item: weitergeben)//Class item: weitergeben)
{
//System.out.println(item);
if(item < item.length)
{
List <Actor> actors= getWorld().getObjects(item);
}
}
}
Dieses List <Actor> actors= getWorld().getObjects(item); soll die .class aus dem Array nehmen, mir die Instanz jener Klasse raussuchen und sie zu einer Liste von Objekten machen, mit denen ich dann wiederrum arbeiten kann.
if(item < item.length) Das hier funktioniert aber ganz und garnicht. Dieses length sollte doch eigentlich bei Arrays funktionieren oder nicht?
item ist aber kein Array, sondern eine Class Instanz. Und die hat nunmal kein length Attribut. Außerdem macht der Vergleich wenig Sinn, du versuchst hier eine Class Instanz mit einer Zahl zu vergleiche, was soll da rauskommen?!
Die Aufgabe besteht darin sich ein Array von Klassen anzulegen, deren Instanzen in ein zweites Level übertragen werden sollen.
Unser Tutor meinte, dass wir also erst das Array erstellen sollen. Das dann iterieren und dabei die Methode "List <Actor> actors= getWorld().getObjects(item);" ausführen sollen.
Diese soll eine Liste aller Instanzen aus, die sich im Array befinden.
Wenn ich diese Liste habe, soll ich diese iterieren und dann die einzelnen Einträge in eine (schon fertige) Methode packen, die Objekte ins nächste Level bringen kann.
Ähm verstehe zwar deine Aufgabenstellung nicht, oder jedenfalls, das was du von ihr postest, aber dein Code macht wie EikeB schon sagt keinen Sinn
Java:
public Portal()
{
Class[] weitergeben = {Gift.class,Cane.class} ;
for (Class item: weitergeben) // item ist ein Objekt des Arrays weitergeben kein Array
{
if(item < item.length) // item.length wird es nicht geben und müsste wenn dann mit einer zahl oder item.length verglichen werden, was bei < aber dann immer fals ergeben würde
{
List <Actor> actors= getWorld().getObjects(item); // diese Liste ist nur zwischen den Klammern existent, danach nicht mehr
}
}
}
Wie Du lustig bist. Iterieren kann man grundsätzlich mit jeder Schleifenvariante. Je nach dem was Du in der Schleife machst ist die ein oder andere Variante besser geeignet, eine andere vielleicht gar nicht möglich.
Wie komm ich da an dieses "item" ran?
Ich mein das ist ja jetzt keine Klasse mehr sondern ein Objekt.
Also fällt
for (Class item2: item) {
System.out.println(item2);
}
schon mal weg oder?
Ich weiß, dass ich im Programmieren nicht gerade der hellste bin
Hab z.B das vorhin mit for "(Class item: weitergeben)" auch nicht ganz verstanden. Bis jetzt hatten wir nur for-Schleifen die so aufgebaut waren for(Variable deklarieren [int i;]; bedingung[i<10] ; was soll passieren[i++]).
Deshalb check ich den Schritt um Auslesen der Liste nicht
Erstens, ja deine Liste heißt actors wie von Michael geschrieben somit
Java:
for (Class item2: actors) {
System.out.println(item2);
}
und du kannst ja auch die klassische for schleife verwenden, wie bone2 ja geschrieben hatte ;-) auch das geht bei einer Liste nur musst du da dann anstelle von