2015-04-10 18 views

Antwort

10

Dies ist spezifisch für die REPL (Read Evaluate Print Loop), da es nicht wissen kann, wann die Benutzereingabe endet.

Verwenden :paste um es zu bekommen:

scala> class A {} 
defined class A 

scala> object A {} 
defined object A 
warning: previously defined class A is not a companion to object A. 
Companions must be defined together; you may wish to use :paste mode for this. 

scala> :paste 
// Entering paste mode (ctrl-D to finish) 

class A {} 
object A {} 

// Exiting paste mode, now interpreting. 

defined class A 
defined object A 
2

Die Companion-Klasse und ihr Objekt müssen in derselben Datei definiert sein.

so können Sie Ihre Klasse und Objekt in eine Datei schreiben und dann unter Verwendung von :paste in REPL können Sie Ihren Code ausführen. Es wird keine Warnung angezeigt.

scala> :paste 
// Entering paste mode (ctrl-D to finish) 

class Student(sid: Int, sname: String) { 
    val id = sid 
    val name = sname 

    override def toString() = this.id + "," + this.name 
    } 

    object Student { 
    def displayDetails(st: Student) = { 
     println("Student Details : " + st.id + "," + st.name) 
    } 
    } 


// Exiting paste mode, now interpreting. 

defined class Student 
defined object Student 
+0

Danke für die Aufklärung. – Pankaj