Множественный конструктор и неявный параметр - PullRequest
0 голосов
/ 17 октября 2019

У меня есть некоторый код scala

class A (a: Int, b:Int) (implicit typeinfo: TypeInformation[T]) {
  ...
}

, но если я определяю новый конструктор

class A (a: Int, b:Int) (implicit typeinfo: TypeInformation[T]) {
  def this(a: Int]) {
      this(a, 0)   
  }
  ...
}

, компилятор выдает «не удалось найти неявное значение для параметра» ошибка. Я пытался this(a,0)(typeinfo), но получил ту же ошибку

В чем может быть причина?

1 Ответ

3 голосов
/ 17 октября 2019

Главный конструктор - это тот, который вы определили в объявлении класса

this - это вторичный конструктор, и он все еще является функцией, вам нужно определить неявный в объявлении.

если вы сделаете это:

class A (a: Int, b:Int) (implicit typeinfo: TypeInformation[T]) {
  def this(a: Int])(implicit typeinfo: TypeInformation[T]) {
      this(a, 0)   
  }
  ...
}

Это будет работать.

...