Frage von ACACE, 74

[Bukkit-Programmierung] public void run() for (Player : und weiter)?

Hallo!

Ich habe 2 Probleme.

1.)

 public void onEnable()
  {
    BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
    scheduler.scheduleSyncRepeatingTask(this, new Runnable()
    {
      public void run()
      {
        for (Player p : ) {
          if (FCBMain.this.burn.contains(p.getName())) {
            p.setFireTicks(20);
          }
        }
      }
    }, 0L, 20L);

Da wird bei mir das : bei (Player p :) unterstrichen. Was kommt nach diesem Doppelbunkt? Meldung: Syntax error on token ":", Expression expected after this token

2,)

 public void run()
      {
        int radius;
        int x;
 for (Iterator localIterator = Bukkit.getOnlinePlayers().iterator(); localIterator.hasNext(); x < radius) {

}

Bei dem x < radius wird mir das < Zeichen unterstrichen. Wieso?

Meldung: Multiple markers at this line - Syntax error on token "<", invalid AssignmentOperator - Iterator is a raw type. References to generic type Iterator should be

Bitte helft mir!

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Yuncil, 48

for(Player p: Liste|Array|Collection etc.)

Diese Anweisung sagt für alle p vom Typ Player in der Liste: (hier hast du nichts hingeschrieben). In deinem Fall musst du nach dem : die Liste (oder eine andere Datenstruktur) angeben.

Bei deinem zweiten Fall verwendest du einen Iterator und deine Variable x hat keinen Effekt und ist null. nach dem ; lässt du einfach leer.

Kommentar von ACACE ,

Da aber die Frage, wieso nicht Bukkit.getPlayer()?

Kommentar von Yuncil ,

Das kann ich dir nicht sagen ich hab keine Ahnung was für ein Programm du schreibst. Ich kann dir nur sagen wie eine forEach Schleife syntaktisch geschrieben wird. Bukkit.getPlayer() liefert dir wahrscheinlich ein Objekt von dem Typ Player zurück. Was du aber da suchst ist eine Liste die mehrere Player enthält. Also sowas List<Player> playerList;

Kommentar von DeleteMeMan ,

Genau wegen so einer Frage solltest du dich erstmal mit den Grundstrukturen von Java beschäftigen und diese Sprache lernen, bevor du dich an so ein Projekt wagst.

Kommentar von ACACE ,

Habe es selbst herrausgefunden. Eure Antworten haben leider nichts gebracht. Auser die von dir Yuncil. Ich kann Java so ist es nicht. Mache ich ja ohne hin nicht schon 8 Jahre. Nur manchmal hat man diese einen oder anderen "Aussetzer" wo man nicht mehr weiter weiß, obwohl man dies schon etwas öfter benutzt hat. Yuncil deine Antwort hat mir am Besten geholfen, aus dem Grund, weil sie besser und ausführlicher war. Da versteht man es gleich besser. Das mit dem Player was schon etwas mit Bukkit.

for(Player p : Bukkit.getOnlinePlayers())

An der anderen for Schleife hänge ich zwar noch, aber ich hoffe das löse ich auch schnell.

Danke an dich

Kommentar von DeleteMeMan ,

Acht Jahre und du bekommst es nicht gebacken eine einfache Schleife hinzukriegen?? Wow, sorry. Aber diese Aussage ist entweder gelogen, oder ein schlechter Witz.

Wer acht Jahre lang Java programmiert, aber keine Ahnung hat, wie man eine for - Schleife verwendet, der ist entweder ein ziemlich schlechter Programmierer, oder er lügt wie gedruckt. Das hat dann auch rein GAR NICHTS mit "Aussetzern" zu tun.

JEDER dezente Programmierer würde sich dann die offiziellen Tutorials oder ähnliches von Oracle anschauen, oder sollte in der Lage sein eine API zu lesen, in deinem Falle bezüglich der Frage, warum dann 

Bukkit.getPlayer()
 nicht funktioniert, bei der for - Schleife, obwohl der Name der Methode es schon zu genügend beschreibt.

Du musst wohl noch einiges Nachholen was das Programmieren angeht.

Und wenn du wirklich glaubst, das Hinweise, bezüglich selbstständiges Suchen, wie man eine for Schleife aufbaut, bzw die Syntax ist ein "schlechter Rat" ist, hast du noch einiges zu lernen...

Kommentar von ACACE ,

Also wenn du das so meinst ;).

Ich kann nichts dafür. Denk mal bisschen drüber nach ob es vielleicht einen Gesundheitlichen Grund hat, und vorurteile nicht über Menschen die du nicht kennst. Kleiner Tipp fürs leben.

Kommentar von DeleteMeMan ,

vorurteile nicht über Menschen die du nicht kennst

Tue ich nicht. Wenn du aber nicht mal in der Lage bist selbstständig zu googlen, bzw. du nicht in der Lage bist dir eine Syntax rauszusuchen, ist es extrem traurig. 

Fällt unter die Rubrik Selbständigkeit. Und da du ja in der Lage bist hier eine Frage zu stellen, solltest du wohl auch gesundheitlich in der Lage sein Google zu verwenden, von daher zieht deine Ausrede nicht.

Außerdem bist du doch immer derjenige, der ständig darüber jammert, das man hier auf GuteFrage.net nie vernünftige Antworten bekommt.

Aber mal auf die Idee zu kommen, das es an deinen Fragen liegt, neee. Wieso auch?

Und ich kann nicht jede Anonyme Person hier mit Samthandschuhen anfassen. Damit wirst du wohl leben müssen. Ein kleiner Tipp fürs Leben von mir: Wenn du Anonym unterwegs bist, wirst du behandelt wie jeder andere auch. Lebe damit. 

Kommentar von ACACE ,

Die Kunst ist, Sachen zu verstehen. Eine Sache die du zu meiner Frage anscheinend nicht hast. Und mal ganz ehrlich. Ständig? Ich jammer also ständig darüber, wegen gute Antworten auf GuteFrage.net? Ist dir eigentlich bewusst das ich das nun gerade 1 Mal gefragt habe? Mal ganz ehrlich, wird eigentlich der Mensch dümmer oder bleibt der mit der Weiterbildung stehen? Nichts gegen die Menschheit. Ich finde nur Schade wie verblödet das Internet ist, weil sich ja jeder Dank der "Anonymität" des Internets sich eh jeder traut zu schreiben was er will weil "es kann ja eh nichts passieren". Das was du machst ist aber vorurteilen. Von wegen du tust es nicht. Bewusst vielleicht nicht. Aber unterbewusst. Und zu deiner Feststellung "Ausrede": fällt wieder in die Kategorie Vorurteil. Du weißt weder, ob es eine Ausrede sei, noch wer ich bin und wie ich Gesundheitlich im Leben stehe. Zum Thema das es an meiner Frage liegt: Ich habe eine ganz einfache Frage abgegeben aus Hoffnung, eine hilfreiche Antwort zu bekommen. Hat rein garnichts damit zutun, wie ich nun "angesehen" werde. Für manche anscheinend ja schon weil man ja über alles und jeden Urteilen muss wo man gerade die Fläche bekommt. Aber in der heutigen Zeit benutzt eh jeder die Angriffsflächen anderer Menschen die der Mensch dem Gegenüber bietet. Traurig, aber irgendwie muss man damit leben. Nur schade das so viele Menschen eigentlich nicht in der Lage sind, zu verstehen wie sich alles mit der Zeit verändert. Ich habe gerade vorgeurteilt. Meine es aber nicht so falls du mich damit nun konfrontieren möchtest.Damit wünsche ich dir noch einen schönen Abend und ich hoffe, dass wir uns vielleicht auch in einem normalen Gespräch miteinander wiederfinden denn eigentlich möchte ich die Diskusion nicht. Das Problem ist leider, so viel Kind ich noch bin, das ich überall meinen Senf dazu geben muss. Dazu mal ein 'Tut mir Leid'.

Ich entschuldige mich das ich anscheinend immer jammere weil ich keine guten Antworten bekomme und auch, das ich Gesundheitlich so im Leben stehe wie ich es im Moment tu. Versuche auch wenn es schwer ist dich in die Lage des anderen zu versetzen. Denkst du, kein Mensch möchte irgendwas an sich selbst ändern? Ich bin Mensch so wie du. Mit Lücken, Ecken und Kanten die ich los werden will. Ich weiß es ist schwer über "Anonyme" zu denken wie sie sich fühlen ohne zu wissen wie es der Person geht. Damit möchte ich jetzt keine neue Diskusion beginnen. Wie gesagt ich hoffe das wir doch mal normal über die Tatsachen der Dinge reden können, ohne uns mit gegenseitigen "gegenstimmigen" Aussagen zu konfrontieren weil jeder meint, seine eigenen Aussagen sind wahr und die der anderen Falsch.

Schönen Abend dir noch

Kommentar von DeleteMeMan ,

Au weia, du tust es schon wieder.

  1. Es hat rein gar nichts mit meiner Anonymität zu tun. Ich bin ein sehr direkter Mensch und sage was ich denke. Es ist mir also herzlichst egal wie du meine offene und direkte Art siehst.
  2. Innerhalb dieser Frage hast du ein mal gejammert, ja, aber auch bereits bei anderen Fragen.
  3. Du schiebst schon wieder alles auf deine Gesundheit, bzw auf deine aktuelle Lage. Richtig ich weiß nicht wie es dir gerade geht, was du durch machen musst, ist in diesem Zusammenhang aber auch komplett irrelevant. Du bist in der Lage dir die Zeit zu nehmen eine Frage zu stellen und auf andere Kommentare zu Antworten? Dann bist du auch Folgerichtig in der Lage Google zu verwenden. Wo ist also das Problem? "Java for loop", das wäre alles gewesen was du hättest eingeben müssen. Und sogar wenn du weder den Namen foreach-Schleife kanntest, noch enhanced for loop, hättest du einfach "java for loop colon" suchen können. UM MEHR GEHT ES AUCH SCHON GAR NICHT. Als Programmierer mit acht jähriger Erfahrung sollte man zu so etwas in der Lage sein.
  4. "Mal ganz ehrlich, wird eigentlich der Mensch dümmer oder bleibt der mit der Weiterbildung stehen?" - Ja, das frage ich mich ehrlich gesagt auch.

Wenn du es allerdings immer wieder für nötig empfindest, deine aktuelle Lage hervorzuheben, hoffe ich doch, dass du wenigstens aktiv daran arbeitest, oder einen Psychologen hast, sofern diese Psychische Ursachen haben. Denn sind wir mal ehrlich, dein gesundheitlicher Aspekt hatte hier in dieser Diskussion allgemein nichts zu suchen. Meine Hauptaussagen waren:

  • Acht Jahre Programmiererfahrung -> Man sollte wissen wie man eine for - Schleife verwendet
  • Acht Jahre Programmiererfahrung -> Man sollte wissen wie man Google verwendet
  • Da du oben genanntes offensichtlich nicht konntest, hast du noch haufenweise Dinge zu lernen
  • Du ignorierst Hinweise bezüglich Syntax und stempelst diese gleich als nutzlos ab, nur weil man dir nicht alles vorkaut.

Und dann kommst du mir mit deinen gesundheitlichen Aspekten. Also ich bitte dich,..

Schönen Abend noch.

Kommentar von ACACE ,

Jo wünsch ich dir auch ;)

Antwort
von Spirit528, 46

1) nach dem Doppelpunkt fehlt die Angabe der Liste/Kollektion über die du iterieren willst.
2) Wenn Du einen Iterator bzw. den enhanced for-loop verwendest bleibt der dritte Wert in der for-Syntax leer.

Antwort
von Greg123, 52

Man sollte Sowas nur programmieren wenn man Ahnung hat und kleiner Tipp bevor ich dir die Lösung erzähle guck mal was hinter dem token steht

Kommentar von ACACE ,

Nur mal so als Anmerkung, man muss es ja zuerst mal versuchen um das zu verstehen. Also wieso immer das selbe tun wenn man sich weiterbilden möchte. Und ich finde es echt schade das nicht einmal eine direkte Antwort mit einer erklärung kommt. Da kann ich gutefragen.net vergessen

Kommentar von DeleteMeMan ,

Er hat aber recht. Dir fehlen die Kenntnisse einiger Grundstrukturen in Java.

Wo liegt außerdem das Problem einfach mal zu googlen?

Du solltest dich also mal allgemein mit Java beschäftigen und dir ein Tutorial anschauen, oder Buch, oder sonst was. Denn so wie du die for - Schleifen verwendest, geht es eben nicht.

Keine passende Antwort gefunden?

Fragen Sie die Community