Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala多次初始化调用的构造函数_Scala_Constructor_Initialization - Fatal编程技术网

Scala多次初始化调用的构造函数

Scala多次初始化调用的构造函数,scala,constructor,initialization,Scala,Constructor,Initialization,我在Scala中有一个简单的类。我想在创建类时初始化一些数据。这是我的代码: class SomeClass(someSeq: Seq[Int]) { val someMap = scala.collection.mutable.Map.empty[Int, Set[String]] init() def init(): Unit = { println("init") } override def getData(aValue: In

我在Scala中有一个简单的类。我想在创建类时初始化一些数据。这是我的代码:

class SomeClass(someSeq: Seq[Int]) {

    val someMap = scala.collection.mutable.Map.empty[Int, Set[String]]

    init()

    def init(): Unit = {
      println("init")
    }

    override def getData(aValue: Int): Set[String] = {
      println("I was called")
    }
}
以及运行它的代码:

def someClass = new SomeClass(a)
for (i <- 1 to 3) {
  someClass.getData(i)
}
“Init”中的代码初始化“someMap”


出于某种原因,每次我调用方法“getData”时都会调用Init方法。我做错了什么

def someClass = new SomeClass(a)
您的
def
定义了一个方法。调用该方法将调用
newsomeclass(a)

相反。这将调用
newsomeclass(a)
一次,并将结果分配给
SomeClass

此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)

您的
def
定义了一个方法。调用该方法将调用
newsomeclass(a)

相反。这将调用
newsomeclass(a)
一次,并将结果分配给
SomeClass

此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)

您的
def
定义了一个方法。调用该方法将调用
newsomeclass(a)

相反。这将调用
newsomeclass(a)
一次,并将结果分配给
SomeClass

此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)

您的
def
定义了一个方法。调用该方法将调用
newsomeclass(a)

相反。这将调用
newsomeclass(a)
一次,并将结果分配给
SomeClass



此外,您发布的代码甚至没有编译(因为getData的主体没有返回正确的类型)

“每次我调用方法“getData”时都会调用Init方法。”“不,它没有。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)每次我调用方法“getData”时,都会调用Init方法。不,不是。或者,如果您不这么认为,请发布完整的代码,表明它确实如此。是的,确实如此。我更新了代码,没有。看看我的答案。嗯,是的,但是。。。因为我很笨……:)谢谢,很抱歉给你添麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是放错位置的覆盖是无可争辩的不可编译的。谢谢,很抱歉给您带来麻烦。仍在学习过程中……:)当不可能发生时,值得停下来思考一下,看看还会发生什么:)如果看起来构造函数被调用了多次,可能构造函数被调用了多次:-p如果println的类型正确,代码可以编译,但是,放错位置的覆盖是无可辩驳的不可编译的。
def someClass = new SomeClass(a)
for (i <- 1 to 3) {
  someClass.getData(i)
}
val someClass = new SomeClass(a)