Was ist Los mit meinem Random?
Hier ist mein import-Anweisung:
import java.util.*;
Hier ist es im wesentlichen:
Random Rand = new Random() ;
Hier ist es in einer public void Methode :
int a = 0 ;
while (!done)
{
int a = Rand.nextInt(10) ;
if (debug) stuff ;
if (possibles[a]==1) done = true ;
}
Hier ist die Fehlermeldung die ich bekomme:
TicTacToe.java:85: cannot find symbol
symbol : method nextInt(int)
location: class Rand
a = Rand.nextInt(10) ;
^
Was läuft hier falsch? wie es scheint, habe ich alles richtig gemacht für mich.
- Die Farbe der Rand-variable sollte Euch gegeben haben, ein kleiner Tipp..
- das könnte nützlich sein für erfahrene Entwickler, aber kaum einen guten Tipp für jemand, der neu in Java.
- was ist der Tip???
- Wenn Sie Ihren code gepostet, Klassen sind die Farbe blau und Variablen wäre schwarz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen angegebenen
Rand
immain
Methode und versucht, es auf Ihre public void Methode. Es ist out of scope.Versuchen zu definieren
Rand
im gleichen Methode ( und Kleinbuchstaben dieser Zeit)Etwas wie:
in main:
Random Rand = new Random();In Ihrer Methode:
BTW geschweiften Klammern immer auch in 1 Zeile, wenn ' s
Es scheint, dass Sie definiert eine Klasse namens
Rand
irgendwo in Ihrem Projekt. Verwenden Sie nicht dieses für einen Variablennamen. Ich würde vorschlagen, mitrandom
mit einem kleinen r.Auch, diese Zeile ist unzulässig:
Sollten Sie vielleicht entfernen, da andernfalls definieren Sie
a
zweimal.int a - 0;
ist tatsächlich ein Tippfehler/c&p-Fehler. Das würde nämlich produziert ein weiteres compilation-Fehler, bevor dieRand
Fehler.a is already defined
. Diese Zeile sollte entfernt werden.Scheinbar ein Klasse namens
Rand
im selben Paket oder in dem die Importe. Benennen Sie die variable name ausRand
zurand
nach der Sun Java-Namenskonventionen und es wirdArbeitfix das Besondere problem.Es klingt wie
Rand
ist eine lokale variable in dermain
Methode.Es ist nicht in Reichweite, wenn die "public void Methode" wird aufgerufen. So, der compiler interpretiert die Kennung
Rand
wie der name einer Klasse. Zufälligerweise, Ihre Klasse muss den NamenRand
, so sucht der compiler für eine statische Methode namensnextInt()
, und schlägt fehl.Um es zu beheben, haben Sie ein paar Optionen. Machen die
Random
Beispiel wird eine lokale variable in der "public void Methode", die Sie erstellt haben (durch übergabe als parameter aus dermain
- Methode oder anderen Anrufer, oder durch die Instanziierung innerhalb der Methode). Alternativ könnten Sie erklären, eine private statische variableRand
. Die variable wäre im Rahmen, dass beim Aufruf der Methode.Durch die Art und Weise, die Konvention für Java ist, dass Variablen beginnen mit einem Kleinbuchstaben. Typen (Klassen, Schnittstellen und enums) beginnen mit einem Großbuchstaben. Das brechen dieses übereinkommen macht den code sehen wirklich seltsam, ein Java-Programmierer.
Dem compiler gesagt, Sie war der Fehler in
location: class Rand
.Warum denkt es
Rand
ist eine Klasse? Haben Sie eine definition vonclass Rand
im code?Was passiert, wenn Sie an Ihren
Random
Objektr
stattRand
?Versuchen Sie das umbenennen der Variable Rand-zu anderen Namen..
Gibt die Fehlermeldung, dass Java auf der Suche nach einer Methode, die aufgerufen
nextInt
unter einerint
auf eine Klasse genanntRand
.Aus irgendeinem Grund Java denkt, dass es ist zu sehen, dass die Klasse anstelle von variable. Gibt es eine Klasse namens
Rand
in Ihrem Programm?Diese Art von Verwirrung kann leicht vermieden werden, indem Sie die folgenden Namenskonventionen und beginnen Variablennamen mit einem Kleinbuchstaben: