Я испытываю очень странную ошибку при вводе кода ниже.
Цель этого кода - создать класс, который может комбинировать другие экземпляры этого класса с самим собой, создавая обновленный экземпляр. (Возможно, я бы предпочел неизменность и возврат копий, но это другое обсуждение).
IntelliJ не жалуется, пока я не пытаюсь запустить код, затем он вылетает с
обнаружено несоответствие типов: mic.MyInternalClass требуется: MyClass.this.MyInternalClass this.myVar =
this.myVar.combine (mic.myVar) "
Сообщение об ошибке IntelliJ
class MyClass(s: String) {
var myVar: MyInternalClass = new MyInternalClass(s)
def combine(mic: MyClass): MyClass = {
this.myVar = this.myVar.combine(mic.myVar)
this
}
class MyInternalClass(s: String) {
var myInternalVar: String = s
def combine(mic: MyInternalClass): MyInternalClass = {
this.myInternalVar += mic.myInternalVar
this
}
}
}
object App {
def main(args : Array[String]) {
var mc1: MyClass = new MyClass("dog")
var mc2: MyClass = new MyClass("cat")
mc1.combine(mc2)
println(mc1.myVar.myInternalVar)
println(mc2.myVar.myInternalVar)
}
}