You could define an implicit that does the conversion.
I use this in my parameterized tests to improve readability.
// Define adults with tuples
implicit def makePerson(in:(String,Int))=new Person(in._1,in._2);
// Define kids with triples
implicit def makeUnderagePerson(in:(String, Int, String))=new Person(in._1,in._2, new Person(in._3));
//create single person:
val person:Person=("Mike", 40)
//crate a list of persons:
//
//Remember to type the list, this is what forces the implicit on each tuple.
// ||
// \/
val personList=List[Person](
("Mike", 40),
("Jane", 41),
("Jack", 42),
// Uses the implicit ment for kids.
("Benjamin", 5, Jack)
);
I love this lanuage.