title: Scala case class copy with dynamic named parameter
body: <p>For scala case class with number of parameters (21!!)</p>
  
  <p>e.g. <code>case class Car(type: String, brand: String, door: Int ....)</code>
  where type = jeep, brand = toyota, door = 4 ....etc</p>
  
  <p>And there is a copy method which allow override with named parameter: <code>Car.copy(brand = Kia)</code>
  where would become type = jeep, brand = Kia, door = 2...etc</p>
  
  <p>My question is, is there anyway I can provide the named parameter dynamically?</p>
  
  <pre><code>def copyCar(key: String, name: String) = {
    Car.copy("key" = "name") // this is something I make up and want to see if would work
  }
  </code></pre>
  
  <p>Is scala reflection library could provide a help here?</p>
  
  <p>The reason I am using copy method is that I don't want to repeat the 21 parameters assignment every time when I create a case class which only have 1 or 2 parameter changed.</p>
  
  <p>Many Thanks!</p>