Scala: Конструктор, принимающий либо Seq, либо varargs

Я предполагаю, что по соображениям совместимости тип параметров vararg Any * - Array [Any] - исправьте это если я ошибаюсь, однако это не объясняет следующую ошибку:

class Api(api_url: String, params: Seq[(String, String)]) {
  def this(api_url: String, params: (String, String)*)
    = this(api_url, params.seq)
}

Этот код не компилируется, но выдает предупреждение:

двойное определение: конструктор Api: (api_url: String, params: (String, String) *) Api и конструктор Api: (api_url: String, params: Seq [(String, String)]) Api в строке 13 имеет тот же тип после стирания: (api_url: java.lang.String, params: Seq) Api

Итак, как мне определить конструктор, принимающий либо varargs, либо последовательность?

20
задан om-nom-nom 12 August 2011 в 14:11
поделиться