java - for each

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java-for-each_245677/page_1 - zur Vollversion wechseln!


11Fire01 schrieb am 07.03.2016 um 22:50

Code: JAVA
for(Object obj : world){
    if(obj.flag() == 0){
}

kann man eine methode aus einer anderen klasse grundsätzlich nicht so aufrufen? World ist eine array list.


-=Willi=- schrieb am 07.03.2016 um 23:27

Die Klasse "Object" hat keine Methode "flag". Wenn du eine ArrayList<MyClass> world hast wirst du eher etwas in Richtung "for(MyClass obj : world)" brauchen oder du castest obj nach MyClass.


tinker schrieb am 07.03.2016 um 23:28

Zitat von 11Fire01
kann man eine methode aus einer anderen klasse grundsätzlich nicht so aufrufen? World ist eine array list.
Nein, da die Methode flag() in der Klasse Object nicht existiert. Es gibt afaik zwei Möglichkeiten das Problem zu lösen:
Aber generell solltest du vielleicht dein Konzept überdenken. Eine Array-List mit Object find ich eher unschön. Falls nur Objekte die zu einer bestimmten Klasse gehören darin gespeichert werden, definier die Array-List mit dieser Klasse. Falls es mehrere sind und du bei allen eine Methode flag() aufrufen willst, mach ne Oberklasse.


Obermotz schrieb am 07.03.2016 um 23:44

Du benoetigst Wildcards - am besten du siehst dir das ganze Thema Generics noch einmal genauer an.

Ich hab dir ein Skript aus unserer VL Soft2 angehaengt, darin siehst du genau, wie es funktioniert.


tinker schrieb am 07.03.2016 um 23:58

Oh, Generics is natürlich ein gutes Stichwort. Aber dein pdf lässt sich bei mir nicht downloaden.

Hier ist sonst noch ein Tutorial von Oracle:
https://docs.oracle.com/javase/tuto...nerics/why.html


11Fire01 schrieb am 08.03.2016 um 00:00

danke, werds mir mal durchsehen. oberklasse könnte es auch tun...

edit: hier habe ich die möglichkeit von einem common interface gefunden:
http://stackoverflow.com/questions/...fferent-classes


Denne schrieb am 08.03.2016 um 10:05

Kannst du sagen, um was für Objekte es sich genau handelt? Wie die anderen schon geschrieben gibt es mehrere Lösungen (Interfaces, Oberklassen etc), die auch alle funktionieren, aber je nach Szenario ist eine Lösung "besser" als die andere.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025