2017-09-20 3 views
0

Wenn ich kompilieren ich diesen Fehler:Fehler beim Kompilieren. Was mache ich falsch?

blockmole.scala:4: error: '.' expected but ';' found. 
object Color { 
^ 
one error found 

Der Fehler ist irgendwo in diesem Stück Code:

package blockmole 
import JColor 
object Color { 
    val black = new JColor(0,  0,  0) 
    val mole = new JColor(51, 51, 0) 
    val soil = new JColor(153, 102, 51) 
    val tunnel = new JColor(204, 153, 102) 
} 
+0

Wie kann der Fehler innerhalb des obigen Codes sein, wenn der Compiler sagt, dass er ein ';' gefunden hat, aber es gibt kein solches Zeichen im obigen Code? Bitte posten Sie ein [minimales, vollständiges, überprüfbares Beispiel] (https://stackoverflow.com/help/mcve). – Striezel

+1

@Striezel; Der Compiler fügt am Ende der Zeilen ';' ein. Es beschwert sich, dass nicht genügend Informationen vorhanden sind, um das 'JColor'-Paket/die Bibliothek zu finden. – jwvh

+0

Woher hast du diesen Code kopiert? – Dima

Antwort

0

Ihre Import-Anweisung ist nicht vollständig. Es wird davon ausgegangen, JColor ist der Name des Basispakets (was es nicht ist). Verwenden Sie den vollständigen Paketpfad für die 'JColor'-Bibliothek und es sollte kompiliert werden.

+0

Wissen Sie, wie Sie es vervollständigen können? Kennst du den vollständigen Pfad? Ich kenne ein Paket "java.awt.Color", aber es funktioniert nicht. Danke für die schnelle Antwort BTW! – Sepin98

0

JColor ist kein Standard Scala oder Java Klasse. Es sieht jedoch so aus, als ob Sie nur versuchen, verschiedene Farbinstanzen zu erstellen, und es ist Ihnen egal, welche Bibliothek diese Farben definiert, oder?

Die Java Abstract Window Toolkit (AWT) ist ein wenig in den Zahn lang. Sie könnten es verwenden, ist Color Klasse, wie folgt:

package blockmole 
import java.awt.{Color => AWTColor} // Rename to prevent name clash. 
object Color { 
    val black = new AWTColor(0,  0,  0) 
    val mole = new AWTColor(51, 51, 0) 
    val soil = new AWTColor(153, 102, 51) 
    val tunnel = new AWTColor(204, 153, 102) 
} 

Beachten Sie, dass seit java.awt.Color und Ihr Color Objekt den gleichen Namen haben, müssen wir das eine oder andere zu etwas umbenennen andere (wie die ehemalige AWTColor Umbenennung, in diesem Fall), um eine Kollision zu verhindern.