我正在拆分一个字符串以获取一个数组,然后从中构建一个案例类对象。这是我的代码。
case class Opp
(
a: String,
b: String,
c: String,
d: String,
e: String,
f: String,
g: String,
h: String
)
def getStruct(fff: String): Opp = {
val xxx = fff.split("-")
var opp : Opp = null
if xxx.length < 8{
opp = Opp(xxx[0], xxx[1], xxx[2], xxx[3], xxx[4], xxx[5], xxx[6], null))
}else{
opp = Opp(xxx[0], xxx[1], xxx[2], xxx[3], xxx[4], xxx[5], xxx[6], xxx[7]))
}
}
这行得通,但有没有更好的方法来做到这一点?
答案 0 :(得分:1)
case class Opp(a: String
,b: String
,c: String
,d: String
,e: String
,f: String
,g: String
,h: String)
object Opp {
def apply(ss: Seq[String]): Opp = {
val itr = ss.iterator ++ Iterator.continually("") //avoid null if you can
new Opp(itr.next(), itr.next(), itr.next()
,itr.next(), itr.next(), itr.next()
,itr.next(), itr.next())
}
}
用法:
val myopp = Opp("a-b-c-d-e".split("-"))