title: How to instantiate a parameterized type class by name
body: <p>Following Example:</p>
  
  <p>I have a service that can 'start' any vehicle</p>
  
  <pre><code>interface VehicleStarterService&lt;T: Vehicle&gt; {
     fun &lt;T : Vehicle&gt; start(vehicle: Class&lt;T&gt;): String {
         return vehicle.start
     }
  }
  </code></pre>
  
  <p>I would like to start a vehicle type by name like "Car", which would require me to create a VehicleStarterService; however I cannot seem to find a way to instantiate an interface with a class that is instantiated by name.</p>
  
  <p>I would like to do something like (but cannot):</p>
  
  <pre><code>val cls = "Car"
  val kClass = Class.forName(cls).kotlin
  val service = VehicleStarterService&lt;kClass&gt;()
  service.start
  </code></pre>
  
  <p>I end up having to do the following (creating a service for every paramaterized type I need):</p>
  
  <pre><code>class CarStarterService : VehicleStarterService&lt;Car&gt; {
      fun &lt;T&gt; execute() : String {
          return start(User::class.java)
      }
  }
  </code></pre>
  
  <p>Is there any way to instantiate a paramaterized class in this way?</p>