问题
I have to call method which returns Option[List[Obj]]
.
After I call I need to iterate the List and print the Obj attributes.
object Tester{
def main(args:Array[String]) {
val ymlFilename ="some.yml";
val entities: Option[QueryEntities] = InputYamlProcessor.process(ymlFilename)
for( e: QueryEntities <- entities ){
/// this is not working
//How to access the columnFamily, fromData and toDate ?
}
}
Complete sample
https://gist.github.com/shatestest/fdeaba767d78e171bb6c08b359fbd1bf
回答1:
The most iconic way ot do it is to unwrap values with scala is to use pattern matching to unwrap the value.
entities match {
case Some(queryEntities: QueryEntities) =>
queryEntities.entities.foreach { case e =>
println(e.columnFamily)
println(e.fromDate.getOrElse("defaultFromDateHere")
println(e.toDate.getOrElse("defaultToDateHere"))
}
case None => println("No value")
}
来源:https://stackoverflow.com/questions/53152042/how-can-i-access-a-method-which-return-option-object