Vom Ein Überblick über die Scala Programmiersprache, Second Edition:Java statische Klassenmitglieder und Scala Interoperabilität
// Scala
object PrintOptions {
def main(args: Array[String]): Unit = {
System.out.println("Options selected:")
for (val arg <- args)
if (arg.startsWith("-"))
System.out.println(" " + arg.substring(1))
}
}
In dem obigen Beispiel ruft das Scala Programmverfahren
startsWith
undsubstring
vonString
Dies ist eine in Java definierte Klasse. Es greift auch auf das statische Feldout
der Java-KlasseSystem
zu, und ruft seine (überladene) Methodeprintln
auf. Dies ist sogar möglich obwohl Scala kein Konzept der statischen Klassenmitglieder hat. Tatsächlich wird jede Java-Klasse in Scala als zwei Entitäten gesehen, eine Klasse , die alle dynamischen Member und ein Singleton-Objekt enthält, das alle statischen Member enthält.
Ich verstehe Übersetzung von Scala Begleitern Objekte in Java-Bytecode, aber ich bin nicht sicher, was genau tut es bedeutet, fett gedruckten Text in der oberen Blockquote für entgegengesetztes Beispiel (von Java nach Scala) „wird in Scala gesehen“.
Bedeutet dies, dass Java-Klassen mit statischen Elementen tatsächlich konvertiert oder in Scala als zwei Entitäten interpretiert werden? Oder sind meine beiden Annahmen falsch?
Bezogen auf Ihre Bearbeitung: Und die Frage ist? ;) – Nicolas
Bedeutet das, dass Java-Klassen mit statischen Elementen tatsächlich konvertiert oder in Scala als zwei Entitäten interpretiert werden? Oder sind meine beiden Annahmen falsch? :) – PrimosK
Frage bleibt gleich .. :) – PrimosK