Scalaのコンストラクタの読み込みに問題があります。私はオーバーロードされたCTORの値を渡すためにしようとするたびに、私は問題ScalaのCTORのオーバーロード
Example:
var client : Client = Client(*variable type List[String]()*);
Unspecified value parameter clientList.
エラーを取得するには、私の目標は、2つの異なるデータ型を使用して作成されたオブジェクトを持つことです。 1つはNodeSeq、もう1つはリストです。両方とも決してない。私はCTORを正しく読み込んでいないのですか、それとも私の目標を達成するための効率的な方法がありますか?
package api
import xml._
case class Client(clientNode: NodeSeq, clientList: List[String]) {
def this(clientNode: NodeSeq) = this(clientNode, null)
def this(clientList: List[String]) = this(null, clientList)
var firstName: String
var lastName: String
var phone: String
var street: String
var city: String
var state: String
var zip: String
var products = List[String]()
var serviceOrders = List[String]()
if (clientList == null) {
firstName = (clientNode \\ "firstname").text
lastName = (clientNode \\ "lastname").text
phone = (clientNode \\ "phone").text
street = (clientNode \\ "street").text
city = (clientNode \\ "city").text
state = (clientNode \\ "state").text
zip = (clientNode \\ "zip").text
(clientNode \\ "products").foreach(i => products = i.text :: products)
(clientNode \\ "serviceOrders").foreach(i => serviceOrders = i.text :: serviceOrders)
} else {
firstName = clientList(0)
lastName = clientList(1)
phone = clientList(2)
street = clientList(3)
city = clientList(4)
state = clientList(5)
zip = clientList(6)
}
override def toString(): String = {
return "Name : " + firstName + " " + lastName +
"\nAddress : " +
"\n\t" + street +
"\n\t" + city + ", " + state + " " + zip
}
}
Scalaコードで 'null'を使用しないでください。実際には、Javaとの相互運用性のためにのみ存在します。代わりに 'Option'を使用してください。 (申し訳ありませんが、誰かが 'null 'を使っているのを見るたびにこれを言わなければなりません...)。 – Jesper