Scala companion class warning

后端 未结 2 562
隐瞒了意图╮
隐瞒了意图╮ 2021-01-12 04:07

I am new to Scala programming, can someone explain me below warning reason?

\"Scala-Companion-Warning\" I trie

相关标签:
2条回答
  • 2021-01-12 04:10

    This is specific to the REPL (Read Evaluate Print Loop), since it can't know when user input ends.

    Use :paste to get around it :

    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
    
    0 讨论(0)
  • 2021-01-12 04:23

    Companion class and its object must be defined in the same file.

    so you can write your class and object in a file and then using :paste in REPL you can run your code. no warning will appear.

    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 讨论(0)
提交回复
热议问题