Kotlin – Constructor secundario de class con parámetro diferente

Al convertir una aplicación bastante simple de Java a Kotlin , encontré un "problema" que parece que no puedo solucionar.

Tengo una class ScanInfo que se parece a esto en Java (sin getters y setters)

 public class ScanInfo { private String source; private String label_type; private String data; public ScanInfo(Intent intent) { ... Get Info from intent and assign the values ... this.source = ... this.label_type = .... this.data = .... } } 

Ahora en Kotlin puedo crear la class

 class ScanInfo (var source: String, var label_type: String, var data: String) 

Pero no tengo idea de cómo hacer que funcione, así que puedo crear un object ScanInfo con Intent como parámetro. Intenté con compañero, object, object compañero, pero parece que no puedo encontrar la syntax correcta.

¿Me equivoco al search una solución así mientras uso Kotlin o simplemente no estoy usando el kotlin-constructor correcto? Si es posible, ¿cómo puedo crear un object ScanInfo con un Intento como parámetro?

 var result = ScanInfo(intent) 

Gracias por adelantado.

Esa es la manera:

 class ScanInfo(intent: Intent) { private val source = intent.source private val labelType = intent.labelType private val data = intent.data } 

O

 class ScanInfo(intent: Intent) { private val source: String private val labelType: String private val data: String init { source = intent.data labelType = intent.data data = intent.data } }