Решение Pritish пропускает None
дела.
Например: Animal(Some("apple"),None) //returns apple,None
Так что если вас не устраивает None
всписок, вы можете либо заменить его на строку или отфильтровать их:
как строка:
val result = animal.productIterator.map {
case Some(x) => x
case None => "[no value]"
case x => x // only needed if you would have non optional values
}.mkString(",") // > apple,[no value]
отфильтровать их:
val result = animal.productIterator.map {
case Some(x) => x
case x => x
}.filter{
case None => false
case _ => true
}.mkString(",") // > apple