我们可以用列表在Scala中创建辅助构造函数吗?

我们可以用列表在Scala中创建辅助构造函数吗?,scala,Scala,我试图创建一个请求对象,在这里我可以得到一个字符串作为输入,或者一个字符串列表作为输入。我试着浏览了各种答案,但我认为我并没有在构造函数中发现列表的任何用途。 我正试着做这样的事情 class GetRequest(val url: String) { def this(val urlList: List[String]){ } } 这与列表的不变性有关吗?Scala强制要求有一个主构造函数,并且尽可能多 辅助构造器。有一条规则:每个构造函数必须调用一个先前定义的构造函数 这应该适合您:

我试图创建一个请求对象,在这里我可以得到一个字符串作为输入,或者一个字符串列表作为输入。我试着浏览了各种答案,但我认为我并没有在构造函数中发现列表的任何用途。 我正试着做这样的事情

class GetRequest(val url: String) {

def this(val urlList: List[String]){

 }
}

这与列表的不变性有关吗?

Scala强制要求有一个主构造函数,并且尽可能多 辅助构造器。有一条规则:每个构造函数必须调用一个先前定义的构造函数

这应该适合您:

class GetRequest(val urlList: List[String]) {
  def this(url: String) {
    this(List(url))
  }
}

Scala强制要求有一个主构造函数,并提供所需的所有构造函数 辅助构造器。有一条规则:每个构造函数必须调用一个先前定义的构造函数

这应该适合您:

class GetRequest(val urlList: List[String]) {
  def this(url: String) {
    this(List(url))
  }
}

在区分单个传递的参数和相同类型的集合时,实际上不需要辅助构造函数。这就是varargs语法的用途

class GetRequest(val urls: String*)

new GetRequest("s")
new GetRequest("a","b","c")
new GetRequest(List("x","y","z"):_*)

在构造函数中,URL可以被视为零个或多个元素的
Seq[String]

在区分单个传递的参数和相同类型的集合时,实际上不需要辅助构造函数。这就是varargs语法的用途

class GetRequest(val urls: String*)

new GetRequest("s")
new GetRequest("a","b","c")
new GetRequest(List("x","y","z"):_*)
在构造函数中,可以将URL视为零个或多个元素的
Seq[String]